一次将列名分配给多个对象

时间:2013-09-25 03:35:38

标签: r

一定很容易,但我找不到解决方案......

我有10个相同维度的矩阵,其名称共享模式“daily_”。我想命名所有对象的列,如下所示:0,1,2 ... 10。我试过这个:

colnames(ls(pat="daily_"))<-c(0:10)

但是不起作用!我也试过循环,但我不认为这是正确的方法......

2 个答案:

答案 0 :(得分:1)

最好将daily_1 ..._2等收集到list对象中,但您可以将这些内容重新分配到全球工作环境,作为获取所需内容的迂回方法:< / p>

daily_1 <- matrix(1:10,ncol=10)
daily_2 <- matrix(1:10,ncol=10)

daily_list <- mget(ls(pattern="daily_"))
daily_list <- lapply(daily_list,`colnames<-`,1:10)
list2env(daily_list,envir=.GlobalEnv)

答案 1 :(得分:0)

这应该可行,而不会将所有内容都列入一个列表:

for(name in ls(pat="daily_")){
   mat <- mget(name)[[1]]
   colnames(mat) <- 1:10
   assign(value=mat, x=name)
}

欢呼声 - h