Вывод Dataframe в R в .csv
Итак, я пытаюсь написать CSV файл на основе фрейма данных в R, но по какой-то причине я продолжаю получать следующую ошибку:
Error in .External2(C_writetable, x, file, nrow(x), p, rnames, sep, eol, :
unimplemented type 'list' in 'EncodeElement
Вот что передает traceback():
5: write.table(df, file = "df.csv", col.names = NA,
sep = ",", dec = ".", qmethod = "double")
4: eval(expr, envir, enclos)
3: eval(expr, p)
2: eval.parent(Call)
1: write.csv(df, file = "df.csv")
Любое решение?
Ответы
Ответ 1
Один из ваших столбцов имеет список типов, поэтому data.frame больше не является двумерным и не может быть экспортирован в 2d csv файл.
Если вы все еще хотите сохранить список в результирующем результате, вы можете сначала перенести его в JSON. Таким образом, он становится столбцом типа "character", который может быть легко экспортирован как один столбец в csv.
Ответ 2
Вы также можете принудительно использовать кадры данных непосредственно в R:
my.df <- data.frame(lapply(old.df, as.character), stringsAsFactors=FALSE)
CAVEAT: это приведет к тому, что весь ваш фреймворк будет привязан к любому типу, который вы указали. Например, если вы хотите принудить ваш dataframe к числу, вы замените "as.characater" на "as.numeric":
my.df <- data.frame(lapply(old.df, as.numeric), stringsAsFactors=FALSE)
Ответ 3
У меня была одна и та же проблема, и вместо использования as.character() или as.numeric() я использовал as.matrix(), и он сохранил мои символьные переменные, а мои числовые переменные числовые, и вывел .csv файл, как сон.