r-通过eval或类似方式影响变量



我知道,如果我有一个像a = "var.name"一样存储的变量的名称,我可以通过执行eval(as.symbol(a))get(a)来调用这个var.name,但我不仅想调用一个变量,还想对它进行更改。示例:

names = c("X1","X2")
for(i in names){
assign(i, cbind(replicate(2,rnorm(3))) #Just creating a 3x2 matrix with dummy data
###

在###,我想对变量进行更改,特别是将其列名更改为";a";以及";b";。

我尝试了colnames(get(i)) = c("a","b")colnames(eval(as.symbol(i))) = c("a","b"),但它们返回类似could not find function "eval<-"的错误

一个选项可以是在第一步中创建矩阵,并在第二步中命名和分配新名称。

names = c("X1","X2")
for(i in names){
x <- cbind(replicate(2,rnorm(3))) 
assign(i, provideDimnames(x))
}   
#--------------
> X1
A          B
A -0.59174062  1.8527780
B -0.53088643 -3.2713544
C -0.09330006 -0.5977568

另一个选项是在创建矩阵时分配dimname。

for (i in names) {
x <- matrix(replicate(2, rnorm(3)),
ncol = 2,
dimnames = list(a = c(LETTERS[1:3]), b = c(LETTERS[1:2])))

assign(i, x)
}
#-------------------
> X1
b
a            A           B
A -0.2313692 -0.93161762
B -0.9666849  0.06164904
C  1.5614446 -0.09391062

相关内容

  • 没有找到相关文章

最新更新