Я добавил небольшой пример, чтобы продемонстрировать проблему
library("readxl")
library("openxlsx")
df <- data.frame(QN=1, ST = "String", EL=cbind(list(c("Var1", "Var2"))), BL=FALSE)
cat(paste0("\nQ=", as.numeric(df$QN[[1]])))
cat(paste0("\nST=", as.character(df$ST[[1]])))
cat(paste0("\nEL=", as.character(df$EL[[1]])))
cat(paste0("\nBL=", as.logical(df$BL[[1]])))
wb <- createWorkbook("TEST")
addWorksheet(wb, "Data")
writeData(wb, sheet = 1, df)
saveWorkbook(wb, file = "Test.xlsx", overwrite = TRUE)
df2 <- read_excel(sheet = 1, "Test.xlsx")
cat(paste0("\n\nQ2=", as.numeric(df2$QN[[1]])))
cat(paste0("\nST2=", as.character(df2$ST[[1]])))
cat(paste0("\nEL2=", as.character(df2$EL[[1]])))
cat(paste0("\nBL2=", as.logical(df2$BL[[1]])))
Выходные данные выглядят так
Q=1
ST=String
EL=Var1
EL=Var2
BL=FALSE
Q2=1
ST2=String
EL2=Var1, Var2
BL2=FALSE
Когда я просматриваю фрейм данных с использованием view (df), я вижу это:
c("Var1", "Var2") for EL
Когда я просматриваю второй фрейм даты, я вижу это:
Var1, Var2 for EL
Обратите внимание на разницу между EL и EL2. Я хочу, чтобы EL2 соответствовал EL.
--- ОРИГИНАЛЬНЫЙ ВОПРОС --- У меня есть простой фрейм данных, который выглядит следующим образом (я перечислю только один элемент):
cElementNames
c("Roles_1", "Roles_2", "Roles_3")
Я сохраняю фрейм данных в Excel, используя этот код:
writeData(wb, sheet = iSheet, df, startCol = 1, startRow = 1)
В файле Excel столбец выглядит следующим образом: Roles_1, Roles_2, Roles_3
Я читаю файл Excel обратно в данные.frame используя этот код:
df <- read_excel(sheet = 1, ExcelFile)
Элемент теперь выглядит следующим образом: "Roles_1, Roles_2, Roles_3"
и не может использоваться в моем коде.
IЯ использую data.frame для хранения параметров конфигурации, чтобы я мог создать отчет. Я предпочел бы прочитать информацию о конфигурации из Excel, чем жестко закодировать ее в своем коде.
Поскольку я новичок в этом, я приму любой совет, который смогу получить.
Спасибо