0

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

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

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

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

4

2 回答 2

1

您可能最好将daily_1 ..._2etc 收集到一个list对象中,但您可以将它们重新分配给全局工作环境,作为获得所需内容的迂回方法:

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)
于 2013-09-25T03:55:08.750 回答
0

这应该可以工作,而不会将所有内容都放入列表中:

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

欢呼 - h

于 2013-09-25T05:11:08.147 回答