从文件的字符串中的模式创建数据框

时间:2016-03-01 09:55:02

标签: regex r gsub

我有一个非常大的文件,在开始时有一些标题,然后是八列中的大量数据但是这些数据没有以空格的常规方式分开(他们决定吐出以空格分隔的列但是如果某些列打破了“正常”大小,则列最终会被更多或更少的空格字符分隔。

我做的是,我可以使用连接读取文件,并使用gsub逐行读取,通过应用某个正则表达式,如下所示:

conn <- file("my_file.dat", open="rt")
y <- gsub("a_ver_large_regexp", 
        "\\1, \\2, \\3, \\4, \\5, \\6, \\7, \\8", #the columns I want csv'd   
        perl = TRUE,
        readLines(conn, n=-1L))

然后我结束了y,一个字符向量,其中我在字符类中包含每个元素,但至少现在也用逗号分隔。

现在我想将y矢量转换为数据帧,我想它可能在某种程度上很容易,因为每个元素都是一个字符串,但它有逗号,所以我可以轻松阅读它们,任何想法如何做到这一点? / p>

1 个答案:

答案 0 :(得分:1)

当我们看不到例如y或原始数据时,尝试编写解决方案有点困难。但是,我认为

as.data.frame(do.call("rbind", strsplit(y, ",")))

可能会让你得到你想要的东西。