2017-04-01 3 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) 

が、結果は、私は、彼らがだろうと思ったものをアレント:

"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" 

任意の助けをいただければ幸いです。ありがとう!私はあなたがそれを要求していないけど、あなたは基本的にファイルコンバータとしてRを使用している場合、それだけでsedまたは類似のものを使用する方が便利かもしれません

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

:明示的な面では

+1

try(1) 'read.delim()'の代わりに 'read.table()'; (2) 'write.csv()'で 'quote = FALSE'を使ってみた –

+0

それを試してみたところ、' read.table(file、header = TRUE)のエラー:カラム名よりも多くのカラム ' – BigShiba

+0

'read.table()'に 'comment =" "'を追加してください。 –

答えて

1

コンソール/端末を介して。 F.ex:

sed -E 's/[[:blank:]]+/,/g' name_file.txt > name_file.csv 
関連する問題