读取包含R中包含分隔符的字符串的表

时间:2016-12-27 17:00:13

标签: r separator

我得到了一个包含我想要阅读的数据的文本文件,但其中一列是一个混乱的代码"其中包含与分隔符相同的字符。以下面的集合为例:

number:string
1:abc?][
2:def:{+

将有一行包含3列,只有2列名称。 是否有任何策略来阅读此数据集?

2 个答案:

答案 0 :(得分:1)

一次读取一行文件,在"上分成两部分:",绑定到数据框。列名丢失,但您可以轻松地重新打开它们。您需要stringrreadr个包:

> do.call(rbind.data.frame,stringr::str_split(readr::read_lines("seps.csv",skip=1),":",2))
  c..1....2.. c..abc.......def.....
1           1                abc?][
2           2                def:{+

此处附加stringrreadr以提高可读性,并修改名称:

> library(stringr)
> library(readr)
> d = do.call(rbind.data.frame,str_split(read_lines("seps.csv",skip=1),":",2))
> names(d) = str_split(read_lines("seps.csv",n_max=1),":",2)[[1]]
> d
  number string
1      1 abc?][
2      2 def:{+

答案 1 :(得分:0)

好老regular expressions可以帮助你解决这个问题

读取txt文件

df <- read.table("pathToFile/fileName.txt", header = TRUE)

data.frame将是一列,因此我们需要根据某种模式将其拆分

创建列

df$number <- sub("([0-9]+):.*", "\\1", df[, 1])
df$string <- sub("[0-9]+:(.*)", "\\1", df[, 1])

df <- df[, c("number", "string")]
View(df)
相关问题