在R中读写.TSV文件

时间:2014-09-24 01:06:28

标签: r

我必须对一个项目的.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"

但无法找出解决方案。

如果有人可以帮忙,我将不胜感激!

1 个答案:

答案 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