“逐字”功能

时间:2011-06-07 15:44:32

标签: function r

这可能看起来像一个简单而基本的问题。 我已经研究了r几个月了,似乎我找不到我正在寻找的功能。我甚至不知道如何搜索它......用搜索字符串创意。

我知道有一个函数来获取变量的定义而不是其内容。我解释自己......

> x <- c(4:6,5:9)
> x  # This will return the contents of x...  4,5,6,5,6,7,8,9.

> the.function.i.m.looking.for(x)  # would return:
> c(4:6,5:9)

有人记得那个功能吗? 感谢。

3 个答案:

答案 0 :(得分:5)

dput就是你的意思。从帮助页面:“将R对象的ASCII文本表示写入文件或连接,或使用一个来重新创建对象。”

> x <- c(4:6,5:9)
dput(x)
c(4L, 5L, 6L, 5L, 6L, 7L, 8L, 9L)

> x2 <-  c(4L, 5L, 6L, 5L, 6L, 7L, 8L, 9L)
> all.equal(x, x2)
[1] TRUE

答案 1 :(得分:4)

dput(x)让你关闭:

R> dput(x)
c(4L, 5L, 6L, 5L, 6L, 7L, 8L, 9L)

或者,如果一个字符表示就足够了,那么deparse(substitute())成语就足够了:

foo <- function(x) {
    deparse(substitute(x))
}

但你需要这样称呼它:

R> foo(c(4:6,5:9))
[1] "c(4:6, 5:9)"

不是这个

R> foo(x)
[1] "x"

答案 2 :(得分:3)

如果您想要返回重新创建对象所需的语法,那么dput()就是您的朋友:

x <- c(4:6,5:9)
dput(x)
c(4L, 5L, 6L, 5L, 6L, 7L, 8L, 9L)