2017-07-16 62 views
0

我有格式化一個簡單的.txt文件如下:函數read.table()不是簡單的輸入工作。txt文件

V1 V2 V3 V4 V5 V6 
1 Lepirudin   DB00001 1 BE0000048 Prothrombin            
2 Cetuximab   DB00002 1 BE0000767 Epidermal growth factor receptor       
2 Cetuximab   DB00002 2 BE0000901 Low affinity immunoglobulin gamma Fc region 

我想讀取文件,然後處理內容。然而,當我只是試圖在這個文件中讀取上述使用read.table(),我收到以下錯誤信息:

OutputFileContent <- read.table("Data.txt",header=FALSE) 

OutputFileContent < - 函數read.table( 「DATA.TXT」,標題= FALSE)
在掃描(文件=文件錯誤,什麼什麼= 09月=月,報價=報價,DEC =月,:
1號線沒有13元

OutputFileContent <- read.table("Data.txt",header=TRUE) 

OutputFileContent < - 函數read.table( 「DATA.TXT」,首標= TRUE)
錯誤函數read.table中( 「EdgeList_Experiment.txt」,首標= TRUE):
多於列的名稱欄

...即使有6列和6列名...

任何人都可以提出爲什麼即使這個看似簡單的函數調用失敗,當輸入文件是一個簡單的,小的.txt文件?提前感謝您的見解。

+0

OutputFileContent < - read.table(「Data.txt」,header = TRUE,sep =「\ t」,quote =「」) –

+1

它失敗了,因爲最後一列中的空格被解釋爲字段分隔符。爲了解決這個問題,我們需要更多地瞭解文件的格式。如果是固定寬度格式,請考慮使用read.fwf。如果不是,那麼考慮在R中使用readLines並解析該文件。或者,如果文件非常大,則可以使用awk將該解決方案修復到R之外,以用製表符或逗號替換字段分隔符。 – orizon

回答

1

1)刪除.txt文件中的列之間的空格。使用點擊列之間的分隔如下。

V1 V2 V3 V4 V5 V6 
1 Lepirudin DB00001 1 BE0000048 Prothrombin 
2 Cetuximab DB00002 1 BE0000767 Epidermal growth factor receptor 
2 Cetuximab DB00002 2 BE0000901 Low affinity immunoglobulin gamma Fc region 

2)OutputFileContent < - 函數read.table( 「ttt.txt」,標題= TRUE,月= '\ t')

0

感謝您的有益的建議,所有的。函數read.table( 「DATA.TXT」,首標= TRUE - OutputFileContent <:

write.fwf(CompositeMatrix,file="Data.txt",sep="\t", quote=F, rownames=F, colnames=F)

關於小號裏韋羅的建議使用:

爲了解決orizo​​n的問題,使用以下生成的文件,「sep =」\ t「,quote =」「)

......這個效果很好,除了由於某些原因在第一行內容中插入了兩次」X1「。

關於JKim建議刪除文本文件中的列之間的空格並使用建議的函數調用,除了在第一行值中插入一個X1實例,並且整個第一行是轉移顯著向右並有誤的內容如下:

X1.Lepirudin...........DB00001.1..BE0000048.Prothrombin 

我很欣賞你的輸入,並會玩弄此進一步設法解決這些遺留問題。