首页 > 解决方案 > 循环遍历 R 中的数据框以更改列名和行名

问题描述

我正在尝试自动化一些代码,处理几个我稍后将转换为 LaTeX 表的数据帧。我想循环六个数据框,从中删除相同的列,并将它们的所有列和行重命名为相同的标准名称。

我尝试创建一个基本的 for 循环,但它对数据帧没有任何作用(也没有给出错误)。

row1 <- c(.5,.25,.75)
row2 <- c(.5,.25,.75)
df_1 <- data.frame(rbind(row1,row2))
row3 <- c(.5,.25,.75)
row4 <- c(.5,.25,.75)
df_2 <- data.frame(rbind(row3,row4))
tables <- list(df_1,df_2)
for (i in tables){ 
  rownames(i) <- c("row one","row two")
  colnames(i) <- c("col one","col two","col three")
}
print(df_1)

它打印 df1 没有我试图在循环中分配的行名或列名。如果我在没有 for 循环的情况下手动分配行名,它就可以工作。任何想法为什么?

标签: rdataframe

解决方案


尝试

for (i in seq_along(tables)){ 
  rownames(tables[[i]]) <- c("row one","row two")
  colnames(tables[[i]]) <- c("col one","col two","col three")
  }
print(tables)
#[[1]]
#        col one col two col three
#row one     0.5    0.25      0.75
#row two     0.5    0.25      0.75

#[[2]]
#        col one col two col three
#row one     0.5    0.25      0.75
#row two     0.5    0.25      0.75

推荐阅读