2012-07-19 87 views
1

是否可以將不同的數據類型值寫入R中的文件?目前,我用一個簡單的載體如下:將不同的數據類型值寫入R中的文件

> vect = c (1,2, "string") 
> vect 
[1] "1"  "2"  "string" 
> write.table(vect, file="/home/sampleuser/sample.txt", append= FALSE, sep= "|") 

然而,由於vect是串的向量現在,打開文件有以下內容援引形式存在的:

"x" 
"1"|"1" 
"2"|"2" 
"3"|"string" 

是它不可能將條目12的數據類型恢復爲數值而不是字符串。所以我的預期結果是:

"x" 
"1"|1 
"2"|2 
"3"|"string" 

另外,我假設左側值「1」,「2」和「3」是向量索引?我不明白第一行是如何「x」?

+3

一個向量必須包含所有相同的數據類型。如果你想混合搭配,你應該使用一個列表。 – Dason 2012-07-19 19:50:12

+1

爲什麼第一行是'「x」'在'write.table'的「Arguments」部分中解釋,特別是'col.names'參數... – 2012-07-19 19:56:33

回答

1

我不知道是否簡單地從輸出文件中刪除所有引號將解決您的問題?這很簡單:將quote=FALSE添加到您的write.table()調用中。

write.table(vect, file="/home/sampleuser/sample.txt", 
      append=FALSE, sep="|", quote=FALSE) 

x 
1|1 
2|2 
3|string 

此外,如果你喜歡,你可以擺脫列和行的名稱。但是現在你的分隔符不會出現,因爲你有一個單列表。

write.table(vect, file="/home/sampleuser/sample.txt", append=FALSE, sep="|", 
      quote=FALSE, row.names=FALSE, col.names=FALSE) 

1 
2 
string 
+0

但是然後沒有一個字符串會被標記爲這樣, 對?我猜這取決於如果目標是以特定方式查找的輸出,或者使用所需的數據類型存儲變量。 – 2012-07-20 14:57:18

1

對於向量和矩陣,R要求所有內容都具有相同的數據類型。默認情況下,R會將矢量/矩陣中的所有數據強制轉換爲相同的格式。 R會將更多特定類型的數據強制爲不太具體的數據類型。在這種情況下,存儲在向量中的任何項目都可以合理地表示爲「字符」類型,因此它會自動強制向量的數字部分以適應該數據類型。

正如@Dason所說,如果這不是你想要的,你最好使用一個列表。您可以使用data.frame,它允許您在不同的列中存儲不同的數據類型(在內部,R將data.frames存儲爲列表,因此它是有意義的,這是另一種選擇)。