R 将带有列表的数据帧写入CSV

R 将带有列表的数据帧写入CSV,r,R,我正在使用从facebook营销API导入数据 其中一个字段--website\u purchase\u roas是一个字段列表 如何将其放入CSV website_purchase_roas date_stop 1 0.673001 offsite_conversion.fb_pixel_purchase, 6.506892 2018-10-11 2 1.369035 offsite_conversion.fb_pixel_purchase, 0.594109 2018-10-

我正在使用从facebook营销API导入数据

其中一个字段--
website\u purchase\u roas
是一个字段列表

如何将其放入CSV

 website_purchase_roas  date_stop
1    0.673001 offsite_conversion.fb_pixel_purchase, 6.506892 2018-10-11
2    1.369035 offsite_conversion.fb_pixel_purchase, 0.594109 2018-10-11
3    2.084238                                           NULL 2018-10-11
4     1.31209                                           NULL 2018-10-11
5    2.337662                                           NULL 2018-10-11
6    0.996678                                           NULL 2018-10-11
7    1.936385 offsite_conversion.fb_pixel_purchase, 1.482508 2018-10-11
8    2.777778                                           NULL 2018-10-11
9           0                                           NULL 2018-10-11
10   1.994885                                           NULL 2018-10-11
11   2.402023                                           NULL 2018-10-11
12   4.635056 offsite_conversion.fb_pixel_purchase, 5.222421 2018-10-11
13          0                                           NULL 2018-10-11
14   1.990291                                           NULL 2018-10-11
15   6.557377                                           NULL 2018-10-11
16   3.703704                                           NULL 2018-10-11
17   3.038936                                           NULL 2018-10-11
到目前为止,我一直在使用

write.table(get(fileName),paste0(“/home/rstudio/”,fileName),append=TRUE,na=“na”,row.names=FALSE,sep=“,”,col.names=FALSE)


但是当然,这不能处理列表,我需要首先展平数据帧。

您可以从
data.table
程序包中使用
fwrite
,该程序包有一个
sep2
参数,该参数确定使用什么作为
list
列的分隔符

请参见
?数据表::fwrite

例如:

library(data.table)
set.seed(01349)
DT = data.table(
  V1 = rchisq(5, 5), 
  l_col = lapply(integer(5L), function(x) rnorm(sample(3L, 1L)))
)

fwrite(DT)
# V1,l_col
# 8.55552022121412,-0.865231813182414
# 1.24426281601847,-0.193327839843266|0.215528624259188|0.347253218410811
# 3.43283896352093,0.87954526007159
# 7.60971421627405,-2.37928159590364
# 8.83757675994184,-0.981183793508651|-1.29924540435512

我得到的第4列的长度(28)与第1列的长度(29)不同,但我实际上在寻找一种方法,将此列表转换为数据帧的扁平列,而不是将它们与数据帧的其余部分区分开来columns@Simrankaur这与你的问题中所问的大不相同。根据所需的输出,使用
unest
as.data.table
甚至
toString
。谢谢。我是R的新手。如果我没有正确表达我的问题,请道歉。您介意为我的用例共享一个示例吗?另外,unnest会导致列表中出现多行而不是多列