我有两个列表:一个包含具有不同长度的多个数据帧。对于每一个长度,我都有一个数组列表中的相应数组,现在我想将这些数组作为colnames应用于相同长度的向量。按照长度从一个列表匹配矢量到另一个列表中的数据帧
for (i in 1:10){
assign(paste0("var",i), c(1:10))
}
df1 <- data.frame(var1,var2)
df2 <- data.frame(var3,var4,var5)
df3 <- data.frame(var6,var7,var8,var9)
df4 <- data.frame(var10)
df5 <- data.frame(var1,var2)
df6 <- data.frame(var3,var4,var5)
df7 <- data.frame(var6,var7,var8,var9)
df8 <- data.frame(var10)
my.list <- list(df1,df2,df3,df4)
names1 <- c("aa","bb")
names2 <- c("cc","dd","ee")
names3 <- c("ff","gg","hh","ii")
names4 <- c("jj")
my.list.names <- list(names1,names2,names3,names4)
for (i in 1:length(my.list)){
if (length(my.list[[i]]) == length(my.list.names))
colnames(my.list[[i]]) <- my.list.names
}
我可以看到为什么我的解决方案没有真正的工作。我不仅要检查my.list中的每个数据帧,还要检查my.list.names中的每个可能的向量,然后查看它们是否匹配。
我不能真正包裹这个“循环内的循环”的头。我也尝试过使用更优雅的解决方案。但是我最终还是以同样的观点。另外,如果最后缺少条件,似乎又有另一个条件,但似乎并没有像我之前指出的那样再次指定我写的内容似乎是正确的。