2012-06-08 80 views
1

我有一個名爲mytable的4列數據框,其數百行。 它看起來像將數據幀匯入.txt文件

id   name     count  rate 
234  uert [email protected] 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() 

但我遇到了一個問題,有時名很長,所以這四個列不能在同一個頁面顯示在一起,即第三或第四列可能運行到下一個頁面。

有沒有什麼方法可以調整表格的寬度到.txt文件中?或者除了sink()之外,還可以使用其他代碼將數據幀保存到.txt文件中?謝謝。

回答

3

好像write.table()應該沒問題。只指定一個分隔符,像",",還是其他什麼東西在你的name柱沒有出現:

my.df <- data.frame(ID=c(234,324,329,123), 
     name = c("uert [email protected] 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 
1

你似乎混淆有關文件和控制檯輸出之間的差別。對write.table的線條寬度沒有限制,至少不會在正常使用中會遇到的線條的寬度。您可以使用options(width=72)控制控制檯屏幕寬度,並使用,以便輸出符合您可能具有的任何未標明的寬度要求。