我必须对一个项目的.tsv文件做一些分析,而且我对R很新。我在R中读/写一个.tsv文件时遇到了问题。当有行中的引号(“”)。
原始文件中的一些记录示例如下:
org_id org_name description created at
5762 Artifice Artifice \comes from Latin 4/3/2014 19:42
1045 Access Dar Microsoft "Nasdaq worldwide 7/4/2014 10:34
345 Living Asset Lincoln Park Zoo 11/3/2014 19:42
2356 Adler Planet Mission of black cat 12/2/2014 11:03
我正在使用以下代码行读取文件:
orgs <- read.delim("C:/Users/orgs.tsv", header=TRUE)
重命名列后,我使用以下代码编写文件:
write.table(orgs, file = "C:/Users/orgs_updated.tsv", row.names=FALSE, sep="\t")
现在,当我尝试在另一个程序中读取此文件(orgs_updated.tsv)时,它不喜欢任何列中的引号。我正在使用以下代码再次阅读该文件:
orgs_updated <- read.delim("C:/Users/orgs_updated.tsv", sep="", header=TRUE, quote="\"")
并且正在读取文件,即读错,并添加错误的行。
org_id name description created at
5762 Artifice Artifice \comes from Latin 4/3/2014 19:42
1045 Access Dar Microsoft Nasdaq worldwide
7/4/2014 10:34
345 Living Asset Lincoln Park Zoo 11/3/2014 19:42
2356 Adler Planet Mission of black cat 12/2/2014 11:03
我不确定我做错了什么。我试过了:
using the quote=FALSE option in write.table,
not using quote option in the 2nd read.delim
changing sep = "" to sep ="\t"
但无法找出解决方案。
如果有人可以帮忙,我将不胜感激!
答案 0 :(得分:2)
尝试使用以下内容加载文件(我在机器上使用逗号分隔而不是制表符创建了文件):
orgs <- read.delim("orgs.tsv", header=TRUE, allowEscapes=FALSE, sep=",", quote="", na.strings="", comment.char="")
write.table(orgs, file = "orgs_updated.tsv", row.names=FALSE, sep="\t")
orgs_updated <- read.delim("orgs_updated.tsv", sep="", header=TRUE, quote="\"")
orgs_updated
org_id org_name description created.at
1 5762 Artifice Artifice \\comes from Latin 4/3/2014 19:42
2 1045 Access Dar Microsoft "Nasdaq worldwide 7/4/2014 10:34
3 345 Living Asset Lincoln Park Zoo 11/3/2014 19:42
4 2356 Adler Planet Mission of black cat 12/2/2014 11:03