Что я должен сделать, чтобы увидеть код конкретного объекта, а не результат этого объекта в R? - PullRequest
0 голосов
/ 09 ноября 2018

Например, я написал код, как показано ниже;

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 голосов
/ 09 ноября 2018

Вы можете свернуть функцию, которая принимает выражение в кавычках и выводит как вызов, так и результат в список, а затем вызывает соответствующий элемент списка по мере необходимости.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...