R - 如何将字符串转换为变量名称

时间:2013-12-20 22:33:32

标签: r variables assign

我使用'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)
{
    #create proper column headers
    colnames(assign(paste0("name",i), ???) <- c("a","b","c")
}

我想知道应该用什么代替“???”或了解不同的方法。

还有其他应用程序也不涉及为变量分配任何内容。

1 个答案:

答案 0 :(得分:2)

您可以执行mynames<-ls("name")之类的操作来获取名称和muck的集合,但如果这是您的方式,则最好在创建数据的同时分配名称。使用structure构建框架,或者更简单:使用list元素创建N变量,并为列表元素指定名称(并将数据框也分配给列表元素)。

`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)
}