2010-01-07 4 views
4

Я ищу функцию для дампа переменных и объектов, с человекообразными объяснениями их типов данных. Например, в php var_dump делает это.Что эквивалентно var_dump() в r?

$foo = array(); 
$foo[] = 1; 
$foo['moo'] = 2; 

var_dump($foo); 

Урожайность:

array(2) { 
    [0]=> 
    int(1) 
    ["moo"]=> 
    int(2) 
} 

ответ

7

Несколько примеров:

foo <- data.frame(1:12,12:1) 
foo ## What's inside? 
dput(foo) ## Details on the structure, names, and class 
str(foo) ## Gives you a quick look at the variable structure 

Вывод на экран:

foo <- data.frame(1:12,12:1) 

foo 
    X1.12 X12.1 
1  1 12 
2  2 11 
3  3 10 
4  4  9 
5  5  8 
6  6  7 
7  7  6 
8  8  5 
9  9  4 
10 10  3 
11 11  2 
12 12  1 

> dput(foo) 

structure(list(X1.12 = 1:12, X12.1 = c(12L, 11L, 10L, 9L, 8L, 
7L, 6L, 5L, 4L, 3L, 2L, 1L)), .Names = c("X1.12", "X12.1"), row.names = c(NA, 
-12L), class = "data.frame") 

> str(foo) 

'data.frame': 12 obs. of 2 variables: 
$ X1.12: int 1 2 3 4 5 6 7 8 9 10 ... 
$ X12.1: int 12 11 10 9 8 7 6 5 4 3 ... 
0

печать, вероятно, самая простая функция для использования из коробки; большинство классов предоставляют индивидуальный отпечаток. Они не могут конкретно указывать тип, но часто предоставляют отличительную форму.

В противном случае вы можете написать собственный код, чтобы использовать функции класса и типа данных для получения требуемой информации.

5

Отъезд команды dump:

> x <- c(8,6,7,5,3,0,9) 
> dump("x", "") 
x <- 
c(8, 6, 7, 5, 3, 0, 9) 
4

Я думаю, что вы хотите «ул», который говорит вам структуру объекта г.

1

Попробуйте deparse, например:

> deparse(1:3) 
[1] "1:3" 
> deparse(c(5,6)) 
[1] "c(5, 6)" 
> deparse(data.frame(name=c('jack', 'mike'))) 
[1] "structure(list(name = structure(1:2, .Label = c(\"jack\", \"mike\"" 
[2] "), class = \"factor\")), .Names = \"name\", row.names = c(NA, -2L" 
[3] "), class = \"data.frame\")" 

Это лучше, чем dump, потому что dump требует переменной имя, и он создает файл дампа.

Если вы не хотите печатать его непосредственно, но, например, поместить его в строку с sprintf(fmt, ...) или переменной, чтобы использовать позже, то это лучше, чем dput, потому что dput отпечатки непосредственно.

Смежные вопросы