读取以竖线和逗号分隔的文件:| column1 |,| column2 |

时间:2019-02-07 11:42:56

标签: r csv dataframe

我有如下文件:

|2000|,|23456745|,|23567897tyhgy6|,|SHARP, RODNEY H III|
|2000|,|12345678|,|34567tgh788877|,|WOOLARD, EDGAR S JR|

基本上,这些列由逗号分隔并由管道包裹。

如何使用R阅读类似内容?

我尝试过

read.table("file.txt", sep="|")

但这不能很好地工作,因为每隔一列仅包含一个逗号。我尝试使用“ |,|”作为分隔符,但显然不允许这样做。使用“,”根本不起作用,因为名称随后被分割了。

有什么简单的方法吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试用其他分隔符替换它:

plouf <-   readChar("file.txt", file.info("file.txt")$size)
plouf <- gsub("\\|,\\|",";",plouf) # replace the separator
plouf <- gsub("\\|","",plouf) # remove the end pipes
read.table(plouf,sep=";") # read with the semi colon sep

测试:

plouf <- "|2000|,|23456745|,|23567897tyhgy6|,|SHARP, RODNEY H III|
          |2000|,|12345678|,|34567tgh788877|,|WOOLARD, EDGAR S JR|"

plouf <- gsub("\\|,\\|",";",plouf)
plouf <- gsub("\\|","",plouf)
read.table(text = plouf,sep=";")

    V1       V2             V3                  V4
1 2000 23456745 23567897tyhgy6 SHARP, RODNEY H III
2 2000 12345678 34567tgh788877 WOOLARD, EDGAR S JR

答案 1 :(得分:1)

read.table("./temp.csv", sep=",", quote = "|")将解决问题...