在R中全局定义向量长度

时间:2014-05-23 10:46:10

标签: r

我正在设置数据向量的全局长度,后来在很多地方进入function(),所以我很烦恼在几个地方重新输入。

x[1:10]

如何设置1:10全局,以便我可以在上面的示例中重复使用它,如下所示:

global <- 1:10
x[glboal]

我尝试使用paste(),但无法将其转换为简单数字1:10。请注意,我不希望x <- 1:10看起来像[1] 1 2 3 4 5 ....

一旦出现关于这个问题的反对意见(编码方式/问题类型等),我会尽快删除这篇文章。

编辑:我认为它是:cat(paste("1:10",sep=""),collapse="")

2 个答案:

答案 0 :(得分:1)

我不明白你要做什么。也许这个?

global <- substitute(x <- 1:10)
global
#x <- 1:10
eval(global)
x
#[1]  1  2  3  4  5  6  7  8  9 10

还是这个?

global1 <- substitute(1:10)
global1
#1:10
eval(global1)
#[1]  1  2  3  4  5  6  7  8  9 10

答案 1 :(得分:1)

你说你需要将一个全局变量传递给一个函数,所以可能是这样的吗?

> x <- quote(1:10)
> x
## 1:10
> f <- function() eval(get('x'))
> f()
## [1]  1  2  3  4  5  6  7  8  9 10