запись фреймов данных в несколько файлов Excel - PullRequest
0 голосов
/ 09 декабря 2018

У меня есть фрейм данных в следующем виде:

    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  

Я хочу выбрать столбец name_2 с каждым из столбцов 1,2 и 3 и записать их в один файл Excel на 3 разных листах.

Другими словами, я хотел бы иметь столбцы «name_2» и «col_1» на первом листе моего файла Excel и столбцы «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)
}

Но окончательный файл Excel перезаписан с последним df.

У вас есть идеи, как я могусделай это?

Спасибо

1 Ответ

0 голосов
/ 09 декабря 2018

Попробуйте:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...