1

何百行もある mytable という名前の 4 列のデータ フレームがあります。のように見えます

id         name                   count        rate
234     uert e@3 erwafrw23 weq    34           2
324     awrt%rw-fref-sfr-32 eq    78           4
329     jiowerfhguy qwhrb         90           8
123     234huib|f|wer fwfqwasgre  54           3

表示されているように、名前にはスペースと特殊文字が含まれています。したがって、write.table を使用して data.frame を保存することはできません。私は試した

sink('myfile.txt')
print(mytable,right=F)
sink()

しかし、名前が長すぎて同じページに 4 列をまとめて表示できない場合があるという問題に遭遇しました。つまり、3 列目または 4 列目が次のページに続く場合があります。

.txt ファイルにシンクされたテーブルの幅を調整できる方法はありますか? または、sink() 以外に、他のコードを使用してデータ フレームを .txt ファイルに保存できますか? ありがとう。

4

2 に答える 2

3

write.table()OKのようです。などの区切り記号、または列に表示","されないその他のものを指定するだけです。name

    my.df <- data.frame(ID=c(234,324,329,123), 
      name = c("uert e@3 erwafrw23 weq"," awrt%rw-fref-sfr-32 eq","jiowerfhguy qwhrb","234huib|f|wer fwfqwasgre"),
      count = c(34,78,90,54), rate = c(2,4,8,3))

    write.table(my.df, file = "my.df.txt", sep = ",", col.names = colnames(my.df))

    # read it back in
    my.df2 <- read.table(file = "my.df.txt",sep = ",", header = TRUE, stringsAsFactors = FALSE) 

    all(my.df == my.df2) 
    TRUE
于 2012-06-08T21:36:32.127 に答える
2

ファイルとコンソール出力の違いについて混乱しているようです。の線の幅に制限はありませwrite.tableん。少なくとも、通常の使用で接近するものではありません。コンソール画面の幅を制御しoptions(width=72)て使用できるcapture.output(print(mytable))ため、出力は、指定されていない幅の要件を満たします。

于 2012-06-08T22:45:30.673 に答える