一定很容易,但我找不到解决方案......
我有 10 个具有相同维度的矩阵,它们的名称共享模式“daily_”。我想这样命名所有对象的列:0,1,2...10。我试过这个:
colnames(ls(pat="daily_"))<-c(0:10)
但不起作用!我也尝试过循环,但我认为这不是正确的方法......
一定很容易,但我找不到解决方案......
我有 10 个具有相同维度的矩阵,它们的名称共享模式“daily_”。我想这样命名所有对象的列:0,1,2...10。我试过这个:
colnames(ls(pat="daily_"))<-c(0:10)
但不起作用!我也尝试过循环,但我认为这不是正确的方法......
您可能最好将daily_1
..._2
etc 收集到一个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)
这应该可以工作,而不会将所有内容都放入列表中:
for(name in ls(pat="daily_")){
mat <- mget(name)[[1]]
colnames(mat) <- 1:10
assign(value=mat, x=name)
}
欢呼 - h