2017-10-19 86 views
0

我想知道如果我可以用下面的錯誤,而閱讀R.函數read.table使用錯誤而讀txt文件中的R

我的txt文件格式是這樣的txt文件,我碰到獲得幫助:

Subject ID Span Accuracy Accuracy (SD) Avg RT Avg RT (SD) Median RT Number of Trials Date/Time 
1 2 1 0 3206 1702.713 3206 2 08/23/2016 12:54:13 
1 3 1 0 2485.5 12.021 2485.5 2 08/23/2016 12:54:13 
1 4 1 0 3513 0 3513 1 08/23/2016 12:54:13 

我運行代碼

test <- read.table('test.txt', sep = "\t") 

我會得到錯誤

Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, : 
    line 2 did not have 10 elements 

不過,如果我只包括在TXT頭並刪除以下數據行,我可以運行相同的代碼,並得到:

> test 
      V1 V2  V3   V4  V5   V6  V7    V8  V9 
1 Subject ID Span Accuracy Accuracy (SD) Avg RT Avg RT (SD) Median RT Number of Trials Date/Time 

如果我刪除從TXT標題和只包括數據在TXT行,我也可以運行相同的代碼,並得到:

> test 
    V1 V2 V3 V4  V5  V6  V7 V8     V9 
1 1 2 1 0 3206.0 1702.713 3206.0 2 08/23/2016 12:54:13 
2 1 3 1 0 2485.5 12.021 2485.5 2 08/23/2016 12:54:13 
3 1 4 1 0 3513.0 0.000 3513.0 1 08/23/2016 12:54:13 

看起來既頭和數據包含9個元素,但我得到的錯誤說「2號線沒有10元,」如果我包括頭文件和數據行在同一個txt文件中。我嘗試使用header = FALSE,但它給出了相同的錯誤。

如果有人能幫我解決這個問題,我將不勝感激。我有大量的txt文件格式相同,所以打開每個txt並手動刪除標題行是不現實的。

謝謝!

+0

這可能是因爲在日期和時間列的日期和時間值之間存在空格字符。 –

+0

也許在你最喜歡的編輯器中查看空白可能會解決你的問題。 – JMT2080AD

回答

0

其實,有標題部分中陳述十列。如果僅導入標題,則標題的列將用作行名稱的標籤。

因此,要麼必須包含實際數據的行名(這將是第10列),或者您必須從輸入文件中排除主題

爲了驗證的目的,我剛從報頭部分刪除了主題術語,併成功將其讀取爲具有3個觀測值和9個變量的數據幀。

structure(list(ID = c(1L, 1L, 1L), Span = 2:4, Accuracy = c(1L, 1L, 1L), Accuracy..SD. = c(0L, 0L, 0L), Avg.RT = c(3206, 2485.5, 3513), Avg.RT..SD. = c(1702.713, 12.021, 0), Median.RT = c(3206, 2485.5, 3513), Number.of.Trials = c(2L, 2L, 1L), Date.Time = structure(c(1L, 1L, 1L), .Label = "08/23/2016 12:54:13", class = "factor")), .Names = c("ID", "Span", "Accuracy", "Accuracy..SD.", "Avg.RT", "Avg.RT..SD.", "Median.RT", "Number.of.Trials", "Date.Time"), class = "data.frame", row.names = c(NA, -3L))