web-dev-qa-db-ja.com

リストをCSVにエクスポートするか、RのTXTファイル

この質問をしてすみません。私はRに非常に慣れています。同じ問題に関連するスレッドがたくさんあることを知っています。要素の1つがリストの場合、テーブルをエクスポートできないことを理解しましたが、問題を解決できませんでした。だから、私は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'

リストの最初の要素は次のとおりです。

$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

よろしくお願いします!

28
hans glick

したがって、基本的にリストのリストがあり、mylistがメインリストの名前であり、最初の要素が$f10010_1であり、印刷されます(さらに4つのリストが含まれます)。

これを行う最も簡単な方法は、lapplyを追加してdataframeを使用することだと思います(メインリストの各要素内の各リスト($f10010_1のリストのように)同じ長さ):

lapply(mylist, function(x) write.table( data.frame(x), 'test.csv'  , append= T, sep=',' ))

上記は$f10010_1をデータフレームに変換し、他のすべての要素で同じことを行い、 'test.csv'で1つを下に追加します

コンソールで?write.tableと入力して、テーブルをcsvファイルに書き込むときに渡す必要がある他の引数を確認することもできます。行名または列名などが必要かどうか.

17
LyzandeR

mostこれを行う簡単な方法はcapture.output、 副<文>この[前述の事実の]結果として、それ故に、従って、だから◆【同】consequently; therefore <文>このような方法で、このようにして、こんなふうに、上に述べたように◆【同】in this manner <文>そのような程度まで<文> AひいてはB◆【用法】A and thus B <文>例えば◆【同】for example; as an example;

capture.output(summary(mylist), file = "My New File.txt")

簡単!

35
EcologyTom

リストを単にdata.frameとしてラップできます(実際には、data.frameは特別な種類のリストです)。以下に例を示します。

_mylist = list() 
mylist[["a"]] = 1:10 
mylist[["b"]] = letters[1:10]
write.table(as.data.frame(mylist),file="mylist.csv", quote=F,sep=",",row.names=F)
_

または、write.csv(write.tableのラッパー)を使用することもできます。リストの変換には、as.data.frame(mylist)data.frame(mylist)の両方を使用できます。

再現可能な例 を作成するために、データでdputなどの関数を使用できます。

3
Hans Roggeman

sink関数を使用:

sink("output.txt")
print(mylist)
sink()
3
user9112767

cat(capture.output(print(my.list), file="test.txt"))

from R:.txtファイルへのリストのエクスポートとインポートhttps://stackoverflow.com/users/1855677/42 が私のために働いた唯一のものです。これは、テキストファイルにあるリストのリストを出力します

2
O.rka