R-如何将字符串转换为变量名
我使用“分配”创建了许多变量,并为它们分配了值:R-如何将字符串转换为变量名,r,variables,assign,R,Variables,Assign,我使用“分配”创建了许多变量,并为它们分配了值: N <- 10 for(i in 1:N) { #create variable names n1, ..., n'N' assign(paste0("name",i), data.frame(matrix(1:100, ncol=3, nrow=100))) } 我现在需要能够访问这些变量名,但不给它们赋值;我只需要在这个应用程序中更改它们的列标题。以下代码不起作用,但类似于以下代码: for(i in 1:N) {
N <- 10
for(i in 1:N)
{
#create variable names n1, ..., n'N'
assign(paste0("name",i), data.frame(matrix(1:100, ncol=3, nrow=100)))
}
我现在需要能够访问这些变量名,但不给它们赋值;我只需要在这个应用程序中更改它们的列标题。以下代码不起作用,但类似于以下代码:
for(i in 1:N)
{
#create proper column headers
colnames(assign(paste0("name",i), ???) <- c("a","b","c")
}
我想知道该用什么来代替???或者学习一种不同的方法
还有其他一些应用程序也不需要为变量赋值。您可以执行类似MyNames的操作一旦有了名为foo的变量,只需执行ColNamesFoo,但如何在循环设置中编写像我这样的“foo”?我的意思是‘foo1’、‘foo2’、‘foo3’等等。我必须以某种方式在‘foo’后面加上数字。这就是问题所在。如果我只是执行“粘贴0foo,I”,那么这是一个字符串而不是变量名。您可以使用get“foo1”。然而,更具R-ish风格的方法是使用命名列表,而不是赋值:for。。。{yourlist[[i]]相关:
`my.list`<-list()
for (i in 1:N) {
my.list[[i]]<-data.frame(matrix(1:100, ncol=3, nrow=100))
names(my.list)[i]<-paste('name',i)
}