2013-07-02 88 views
3

read.table或read.csv函數將返回NA在csv文件的單元格中爲「i」。例如R中的read.table函數無法讀取'i'

read.table(text <- textConnection('a, b, c 
b,i,i 
'), sep = ',', head = TRUE) 


a b c 
1 b NA NA 

任何建議來解決這個問題?

> sessionInfo() 
R version 3.0.1 (2013-05-16) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 

locale: 
[1] LC_COLLATE=English_Australia.1252 LC_CTYPE=English_Australia.1252 
[3] LC_MONETARY=English_Australia.1252 LC_NUMERIC=C      
[5] LC_TIME=English_Australia.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

loaded via a namespace (and not attached): 
[1] digest_0.6.3 evaluate_0.4.3 formatR_0.8 tools_3.0.1 

乾杯, 幫友

+0

您可以通過'read.table(text =「」,...)'來簡化事物。不需要'textConnection'或'<-'。 –

回答

5

出現這種情況是因爲你沒有指定的類使用colClasses您的列。

因此read.table使用type.convert嘗試將其轉換爲邏輯,整數,數字或複數。

itype.convert解釋爲試圖複雜,但返回NA

type.convert('i') 
## NA 

使用`colClasses =「字符」)來強制所有列是字符,或使用名爲向量,以確保您爲您希望列的類。

+0

正確的點!爲了增加它,如果你的文件中有超過1行,並且該列有一個不同於'i'的值,那麼它會被檢測到,你會得到正確的讀取。 – Arun

+0

謝謝你們兩位。您的意見對我非常有幫助。 – Bangyou