【发布时间】:2013-12-20 22:33:32
【问题描述】:
我使用“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")
}
我想知道用什么代替“???”或学习不同的方法。
还有其他应用程序也不涉及为变量分配任何内容。
【问题讨论】:
-
一旦你有了一个名为
foo的变量,只需执行colnames(foo)<-c('firstname','secondname') -
但是我如何像我一样在循环设置中写“foo”?我的意思是“foo1”、“foo2”、“foo3”等。我必须以某种方式将数字附加到“foo”。这就是问题。如果我只是做'paste0("foo",i)',那么这是一个字符串而不是变量名。
-
你使用
get('foo1')。但是,更多R-ish 的方式是使用命名列表而不是assign:for(...) {yourlist[[i]] <- ...}。