我得到了一个包含我想要阅读的数据的文本文件,但其中一列是一个混乱的代码"其中包含与分隔符相同的字符。以下面的集合为例:
number:string
1:abc?][
2:def:{+
将有一行包含3列,只有2列名称。 是否有任何策略来阅读此数据集?
答案 0 :(得分:1)
一次读取一行文件,在"上分成两部分:",绑定到数据框。列名丢失,但您可以轻松地重新打开它们。您需要stringr
和readr
个包:
> 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:{+
此处附加stringr
和readr
以提高可读性,并修改名称:
> 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
可以帮助你解决这个问题
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)