簡體   English   中英

將包含列表的數據幀寫入csv文件

[英]Write a data frame containing a list to csv file

我想將我的數據train.user (213451個變量,共20個變量。其中2個變量是列表)另存為csv文件。

我用:

write.csv(train.user, "train_user.csv", row.names = FALSE)

但是發生錯誤

Error in .External2(C_writetable, x, file, nrow(x), p, rnames, sep, eol,  : 
  unimplemented type 'list' in 'EncodeElement'

這就是我的數據train.user樣子。 (通過使用str )(僅顯示其中一部分)

'data.frame':   213451 obs. of  20 variables:
 $ id                     : Factor w/ 213451 levels "00023iyk9l","0005ytdols",..: 100523 48039 26485 68504 48956 147281 129610 2144 59779 40826 ...
 $ gender                 : Factor w/ 4 levels "-unknown-","FEMALE",..: 1 3 2 2 1 1 2 2 2 1 ...
 $ age                    :List of 213451
  ..$ : num NA
  ..$ : num 38
  ..$ : num 56
  ..$ : num 42
  ..$ : num 41
  .. [list output truncated]

似乎列age存儲為列表,而write.csv不接受此格式。 出於天真的直覺,我嘗試使用以下代碼將列重新存儲為數據框,但是失敗了。

train.user$age <- as.data.frame(train.user$age)

錯誤信息:

   Error in `$<-.data.frame`(`*tmp*`, "age", value = list(NA_real_. = NA_real_,  : 
  replacement has 1 row, data has 213451

我也嘗試了train.user$age <- data.frame(lapply(train.user$age, unlist))如另一篇文章中所建議,但是發生相同的錯誤。

感謝您的幫助!

train.user$age <- unlist(train.user$age)

從技術上講, data.frame是等長向量的列表,但是大多數函數將假定所有列都是原子向量,並且在嘗試使用列表時會失敗。

注意:不要在問題中編輯答案。

pacman :: p_load(tidyverse)

train.user%>%as_tibble()%>%mutate(年齡= map(年齡,〜unlist(。)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM