首页 文章

将数据帧写入多个excel文件

提问于
浏览
0

我有以下形式的数据框:

name_1 name_2 col_1 col_2 col_3
 [1,] a     d      1     4     7  
 [2,] b     e      2     5     8  
 [3,] c     f      3     6     9

我想为列1,2和3中的每一列选择列名_2,并将它们写入3个不同表中的一个Excel文件中 .

换句话说,我希望在我的Excel文件的第一张表格中包含“name_2”和“col_1”列,在第二张表格中列出“name_2”和“col_2”列,在第三张表格中列出“name_2”和“col_3”列 .

我正在使用这个循环如下

for(i in 2:5){
  df <- data.frame(my file)
  df <- df[,c(2,i+1)]
  write.xlsx(x = df, file = "/pathtofolder/excel.xlsx", sheetName = "column_name",append=TRUE, row.names = T, col.names = T)
}

但最终的exf文件是用最后一个df写的 .

你知道我怎么能这样做吗?

谢谢

1 回答

  • 0

    试试这个:

    library(openxlsx)
    
    wb <- createWorkbook("/pathtofolder/excel.xlsx")
    
    for(i in 2:4){
      addWorksheet(wb, sheetName = colnames(df)[i+1])
      writeData(wb = wb, sheet = colnames(df)[i+1], x = df[,c(2,i+1)], colNames = F)
    }
    
    saveWorkbook(wb,"/pathtofolder/excel.xlsx", overwrite = T)
    

    如果Excel文件已存在,请使用 loadWorkbook 而不是 createWorkbook

相关问题