在R中全局定义向量长度
我试图设置数据向量的全局长度,它后来在许多地方进入function(),所以我对在几个地方重新键入它感到恼火在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
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.framedf
,那么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