将包含列表的数据帧写入csv文件

时间:2016-02-18 04:26:00

标签: r list csv dataframe

我想将我的数据3 fld_timestamp := to_timestamp_tz(newcol,'DAY Mon DD hh24:mi:ss TZR YYYY'); (20个变量中的213451个,其中2个变量是列表)保存为csv文件。

我用:

train.user

但发生错误

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 ,但发生了同样的错误。

我感谢任何帮助!

2 个答案:

答案 0 :(得分:3)

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

从技术上讲,data.frame是等长向量的列表,但是大多数函数都会假设所有列都是原子向量,并且在尝试使用列表时会失败。

注意:不要编辑问题的答案。

答案 1 :(得分:0)

pacman :: p_load(tidyverse)

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