我很抱歉问这个问题.我和R非常相似.我知道有很多线程与同一个问题有关.据我所知,如果其中一个元素是一个列表,我们就无法导出表格,但我无法解决我的问题.所以,我在R中有一个列表,我想将其导出为CSV或TXT文件.以下是执行此write.table命令时收到的错误消息:
write.table(mylist,"test.txt",sep=";")
Error in .External2(C_writetable, x, file, nrow(x), p, rnames, sep, eol, :
unimplemented type 'list' in 'EncodeElement'
Run Code Online (Sandbox Code Playgroud)
这是我列表的第一个元素:
$f10010_1
$f10010_1$mots
[1] X16 ESPRESSO TDISC TASSIMO
[5] CARTE NOIRE A LAVAZZA
[9] MALONGO MIO MODO 123
[13] CAPSULES DOSES 78G LONG
[17] SPRESSO CAFE 120G CLASSIC
[21] 104G 128G AROMATIQUE INTENSE
[25] 112G 156G 520G 5X16
[29] PROMO TRIPACK X24 126G
[33] 16 4X16 APPASSIONATAMENTE APPASSIONATEMENTE
[37] BRESIL CAPSUL COLOMBIE CORSE
[41] CREMOSAMENTE DELICATI DELIZIOSAMENTE DIVINAMENTE
[45] DOLCEMENTE EQI GRAND GRANDE
[49] GT GUATEMALA HAITI INTENSAMENTE
[53] ITALIAN MAGICAMENTE MERE MOKA78G
[57] PETITS PRODUCT PURSMATIN RESERVE
[61] RISTRETO SOAVEMENTE STYLE X36
64 Levels: 104G 112G 120G 123 126G 128G 156G 16 4X16 520G 5X16 78G ... X36
$f10010_1$nblabel
[1] 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
[27] 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
[53] 32 32 32 32 32 32 32 32 32 32 32 32
Levels: 32
$f10010_1$Freq
[1] 18 16 16 15 14 14 9 9 9 9 9 8 8 8 7 7 7 6 5 5 3 3 3 3 2 2
[27] 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[53] 1 1 1 1 1 1 1 1 1 1 1 1
$f10010_1$pct
[1] 0.56250 0.50000 0.50000 0.46875 0.43750 0.43750 0.28125 0.28125 0.28125
[10] 0.28125 0.28125 0.25000 0.25000 0.25000 0.21875 0.21875 0.21875 0.18750
[19] 0.15625 0.15625 0.09375 0.09375 0.09375 0.09375 0.06250 0.06250 0.06250
[28] 0.06250 0.06250 0.06250 0.06250 0.03125 0.03125 0.03125 0.03125 0.03125
[37] 0.03125 0.03125 0.03125 0.03125 0.03125 0.03125 0.03125 0.03125 0.03125
[46] 0.03125 0.03125 0.03125 0.03125 0.03125 0.03125 0.03125 0.03125 0.03125
[55] 0.03125 0.03125 0.03125 0.03125 0.03125 0.03125 0.03125 0.03125 0.03125
[64] 0.03125
Run Code Online (Sandbox Code Playgroud)
谢谢大家的帮助!
Eco*_*Tom 36
我认为最简单的方法是使用capture.output,因此;
capture.output(summary(mylist), file = "My New File.txt")
Run Code Online (Sandbox Code Playgroud)
简单!
Lyz*_*deR 18
所以基本上你有一个列表列表,mylist是主列表的名称,第一个元素$f10010_1是打印出来的(其中包含4个列表).
我认为最简单的方法是使用lapply添加dataframe(假设主列表的每个元素中的每个列表(如列表中的内容$f10010_1)具有相同的长度):
lapply(mylist, function(x) write.table( data.frame(x), 'test.csv' , append= T, sep=',' ))
Run Code Online (Sandbox Code Playgroud)
上面将转换 $f10010_1为数据帧,然后对每个其他元素执行相同操作,并在'test.csv'中将一个添加到另一个下面
您还可以?write.table在控制台上键入以检查在将表写入csv文件时需要传递的其他参数,例如,是否需要行名称或列名等.
cat(capture.output(print(my.list), file="test.txt"))
来自R:将列表导出并导入到 .txt 文件 /sf/users/129897421/是唯一对我有用的东西。这会输出文本文件中的列表列表
使用sink功能:
sink("output.txt")
print(mylist)
sink()
Run Code Online (Sandbox Code Playgroud)