在R中全局定义向量长度

在R中全局定义向量长度,r,R,我试图设置数据向量的全局长度,它后来在许多地方进入function(),所以我对在几个地方重新键入它感到恼火 x[1:10] 如何设置1:10globaly,以便在上述示例中重复使用它,如下所示: global <- 1:10 x[glboal] global我不明白你想做什么。也许是这个 global <- substitute(x <- 1:10) global #x <- 1:10 eval(global) x #[1] 1 2 3 4 5 6 7

我试图设置数据向量的全局长度,它后来在许多地方进入function(),所以我对在几个地方重新键入它感到恼火

x[1:10]
如何设置
1:10
globaly,以便在上述示例中重复使用它,如下所示:

global <- 1:10
x[glboal]

global我不明白你想做什么。也许是这个

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

global您说过需要向函数传递一个全局变量,所以可能是这样的

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

使用自定义属性?对不起,我不知道你的意思。我认为,在你的代码中,问题是你试图用
[]
子集向量
x
,并选择一列(2),但既然
x
是向量,那就行不通了。如果您有一个data.frame
df
,那么
df[x,2]
将正常工作。我删除了列(2),因为这很混乱。我只是在寻找
1:10
,这样我就可以把其他
x[global]
定义为
x[1:10]
我看不出
1:10
1,2,…,10
之间的区别。就细分而言,就我所能看到的而言,它似乎没有什么不同。太棒了!是的,
substitute()
满足我的需要!谢谢
> x <- quote(1:10)
> x
## 1:10
> f <- function() eval(get('x'))
> f()
## [1]  1  2  3  4  5  6  7  8  9 10