当我想要查看被调用的结构时,我通常可以使用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
。
答案 0 :(得分:2)
我不是100%确定这是否符合您的目的,但您可以尝试使用substitute
定义表达式,然后再评估它以创建m
(不是quote
但是... 。):
xpr <- substitute(matrix(sample(2)))
m <- eval(xpr)
结果:
> m
[,1]
[1,] 2
[2,] 1
> xpr
matrix(sample(2))
干杯!