【发布时间】:2017-04-02 04:14:35
【问题描述】:
我试图从文本文件中获取表格,然后将其输出(或转换)为 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"
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
尝试 (1)
read.table()而不是read.delim(); (2) 使用quote=FALSE和write.csv() -
试过了,它给了我一个奇怪的错误
Error in read.table(file, header = TRUE) : more columns than column name -
在
read.table()中添加comment="" -
行得通!谢谢。我要做的最后一件事是在输出中每行的最后一个元素添加一个逗号:
C#,CLA,OLA,Quiz,Exam,FinalExam,知道怎么做吗? -
@BigShiba:为什么要在末尾添加逗号?它会有效地为您提供一个完全空的额外列。这可能会导致混乱。