Подтвердить что ты не робот

Вывод 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")

Любое решение?

4b9b3361

Ответ 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 файл, как сон.