例如,我编写了如下代码;
x<-seq(0,1,length=1000)
(对不起,我不知道该怎么称呼这个x
的概念…)
在这种情况下,我想在结果屏幕中看到seq(0,1,length=1000)
或x<-seq(0,1,length=1000)
,而不是像seq
这样的0.000000000 0.001001001 0.002002002 …
的结果。
起初,我使用x$call
,但看来$call
仅适用于lm
。有什么方法可以得到我想要的结果吗?
答案 0 :(得分:1)
您可以滚动一个使用带引号的表达式的函数,并在列表中输出调用和结果,然后根据需要调用相关的列表元素。
f <- function(expr) list(call = expr, value = eval(expr))
### call f() with a quoted expression
out <- f(quote(x <- seq(0, 1, length=1000)))
### get the call
out$call
# x <- seq(0, 1, length = 1000)
### get the (first few) values
head(out$value)
# [1] 0.000000000 0.001001001 0.002002002 0.003003003 0.004004004 0.005005005
另一个选项基于@thelatemail的注释。我们可以通过call
创建呼叫,然后根据需要对其进行评估。
cl <- call("<-", quote(x), quote(seq(0, 1, length = 1000)))
cl
# x <- seq(0, 1, length = 1000)
eval(cl)
head(x)
# [1] 0.000000000 0.001001001 0.002002002 0.003003003 0.004004004 0.005005005