我使用'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")
}
我想知道应该用什么代替“???”或了解不同的方法。
还有其他应用程序也不涉及为变量分配任何内容。
答案 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)
}