10

我正在寻找一个函数来转储变量和对象,并对其数据类型进行人类可读的解释。例如,在 phpvar_dump中就是这样做的。

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

var_dump($foo);

产量:

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

5 回答 5

12

几个例子:

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 ...
于 2010-01-08T21:43:53.117 回答
5

查看dump命令:

> x <- c(8,6,7,5,3,0,9)
> dump("x", "")
x <-
c(8, 6, 7, 5, 3, 0, 9)
于 2010-01-07T06:18:42.140 回答
4

我认为你想要'str',它告诉你一个 r 对象的结构。

于 2010-01-07T13:17:48.843 回答
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直接打印。

于 2014-05-14T20:20:36.553 回答
0

print 可能是开箱即用的最简单的功能;大多数课程提供定制的打印。他们可能不会具体命名类型,但通常会提供独特的形式。

否则,您可能能够编写自定义代码来使用类和数据类型函数来检索您想要的信息。

于 2010-01-07T06:01:14.420 回答