запись фреймов данных в несколько файлов Excel

76
5

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

    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.

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

Спасибо

спросил(а) 2018-12-09T01:28:00+03:00 1 год, 6 месяцев назад
1
Решение
77

Попробуй это:

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

ответил(а) 2018-12-09T01:46:00+03:00 1 год, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема