R: как использовать writexl, когда фрейм данных содержит строки и числа - PullRequest
1 голос
/ 26 июня 2019

Я новичок в R и пытаюсь сохранить данные в файл xlsx.Я использую writexl (xlsx вызывал проблемы).

Кажется, что наличие строк и целых чисел в моем фрейме данных вызывает проблемы, когда я пытаюсь использовать write_xlsx.

Я воссоздал проблему здесь:

library(writexl)

matrix <- matrix(1,2,2)
block <- cbind(list("ones","more ones"),matrix)
df <- data.frame(block)

data = list("sheet1"=df)

write_xlsx(data, path = "data.xlsx", col_names = FALSE, format_headers = FALSE)

Файл data.xlsx правильно содержит «sheet1», но он пуст.Я хотел бы

единиц 1 1

больше единиц 1 1

Любой способ получить этот вывод, используя write_xlsx?

Ответы [ 2 ]

1 голос
/ 26 июня 2019

Я бы поднял вопрос о репозитории github пакета: https://github.com/ropensci/writexl/issues.

Делаем это:

df <- data.frame(
  X1 = c("ones", "more ones"),
  X2 = c(1, 1),
  X3 = c(1, 1)
)

write_xlsx(df, path = "data.xlsx", col_names = FALSE, format_headers = FALSE)

отлично работает. Я бы сказал, потому что df в вашем коде имеет список-столбцы:

> str(df)
'data.frame':   2 obs. of  3 variables:
 $ X1:List of 2
  ..$ : chr "ones"
  ..$ : chr "more ones"
 $ X2:List of 2
  ..$ : num 1
  ..$ : num 1
 $ X3:List of 2
  ..$ : num 1
  ..$ : num 1

Не уверен, предназначен ли пакет для этой функции или нет.

0 голосов
/ 26 июня 2019

Я обычно использую openxlsx пакет. Попробуйте адаптировать следующий код:

library(openxlsx)
wb <- createWorkbook()
addWorksheet(wb, "Sheet1")
writeData(wb, "Sheet1", df, colNames = FALSE)
saveWorkbook(wb, "test.xlsx", overwrite = TRUE)
...