回顾通过样本创建的表达式

时间:2014-09-06 06:12:22

标签: r

当我想要查看被调用的结构时,我通常可以使用enquote进行查看。

对于任意列表d,这将是

> d <- list(a = 1, b = 2)
> enquote(d)
# quote(list(a = 1, b = 2))

但对于通过样本创建的对象,它是不同的。 sample未显示在引用的电话中。

> m <- matrix(sample(2))
> enquote(m)
# quote(c(2L, 1L))

有没有办法显示创建m的调用/表达式,以便显示sample?所以结果就像

quote(matrix(sample(2))

更新:Simon在下面的回答很棒,但我真的很想知道我是否能得到一个并不需要我使用{{1创建矩阵substitute

1 个答案:

答案 0 :(得分:2)

我不是100%确定这是否符合您的目的,但您可以尝试使用substitute定义表达式,然后再评估它以创建m(不是quote但是... 。):

xpr <- substitute(matrix(sample(2)))
m <- eval(xpr)

结果:

> m
     [,1]
[1,]    2
[2,]    1
> xpr
matrix(sample(2))

干杯!