我具有以下形式的数据框:
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的列name_2,并将它们写入3个不同工作表的一个excel文件中。
换句话说,我想在我的excel文件的第一页中包含“ name_2”和“ col_1”列,在第二页中具有“ name_2”和“ col_2”列,并在第三页中具有“ name_2”和“ col_3”列。
我正在使用以下for循环
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)
}
但是最终的excel文件被最后的df覆盖。
您知道我该怎么做吗?
谢谢
答案 0 :(得分: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