2017-04-01 133 views
0

我試圖從文本文件中獲取表格,然後將其輸出(或轉換爲csv)以便於操作。我看了一下,找不到任何具體的幫助。如何將單個文本文件轉換爲csv

文本文件看起來是這樣的:

C#    CLA OLA Quiz Exam FinalExam 
c1234501 10 20 10 30 30 
c1234502  9 10 5 20 20 
c1234503 10 17 8 27 27 
c1234504  8 14 10 29 15 
c1234505  7 18 3 24 27 

,我希望得到它的輸出是這樣的:

C#,CLA,OLA,Quiz,Exam,FinalExam, 
c1234501,10,20,10,30,30, 
c1234502,9,10,5,20,20, 
c1234503,10,17,8,27,27, 
c1234504,8, 14, 10, 29, 15, 
c1234505,7, 18, 3, 24, 27, 

用逗號作爲分隔符。 到目前爲止,香港專業教育學院想出這個代碼:

tab = read.delim(file, header = TRUE) 
write.table(tab, file="name_file.csv",sep=",",col.names=TRUE,row.names=FALSE) 

但結果的arent什麼,我認爲他們將是:

"C.","CLA.OLA.Quiz.Exam.FinalExam" 
"c1234501","10 20 10 30 30" 
"c1234502"," 9 10 5 20 20" 
"c1234503","10 17 8 27 27" 
"c1234504 "," 8 14 10 29 15" 
"c1234505 "," 7 18 3 24 27" 

任何幫助,將不勝感激。謝謝!

+1

嘗試(1)'read.table()'而不是'read.delim()'; (2)用'write.csv()'使用'quote = FALSE'' –

+0

試過了,它給了我一個奇怪的錯誤'read.table(file,header = TRUE)中的錯誤:列名比列名更多' – BigShiba

+0

也在'read.table()' –

回答

1

,明文規定:

tab <- read.table("name_file.txt", comment="", header=TRUE) 
write.csv(tab, "name_file.csv", row.names=FALSE, quote=FALSE) 

我知道你沒有要求,但如果你基本上採用R作爲一個文件轉換器,它可能是更方便,只需使用sed或類似的東西通過控制檯/終端。 F.ex:

sed -E 's/[[:blank:]]+/,/g' name_file.txt > name_file.csv