我应该怎么做才能看到特定对象的代码,而不是R中该对象的结果?

时间:2018-11-09 04:08:55

标签: r

例如,我编写了如下代码;

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。有什么方法可以得到我想要的结果吗?

1 个答案:

答案 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