在逗号定界符处将列表拆分为数据框

时间:2019-02-19 16:17:44

标签: r csv split strsplit delimiter-separated-values

这可能是重复的,但是一段时间后,我仍然找不到R的简单,适当的答案。

我有一个列表answers,其中包含许多行中各种类型(数字,字符,字符串,日期)的逗号分隔数据。如何将其拆分,以便每一行包含多个列,每个列中都有数据值?

我一直在尝试使用strsplitseparate函数,但是没有成功。


我的当前数据如下:

[[2,4,6,Yes,No,ABC,date,(not asked),2018-01-04][1,3,5,No,Yes,DEF,date,|I don't know|, 2018-04-03]]

我想把它变成这样的数据框:

    V1  V2  V3  V4   V5   V6   V7     V8            V9     
1   2   4   6   Yes  No   ABC  date   (not asked)   2018-01-04

2   1   3   5   No   Yes  DEF  date   I don't know  2018-04-03  

我已经尝试过:

new_answers<-read.csv(text=gsub("\\,","\n", answers), # replace "," with linefeeds
         header = FALSE)

但这会将数据值垂直(分成超长列)而不是水平(分成具有多列的数据框)分开。

1 个答案:

答案 0 :(得分:2)

用换行符替换所有"]",并使用read.csv删除"["的tehn进程:

txt <- "[[2,4,6,Yes,No,ABC,date,(not asked),2018-01-04][1,3,5,No,Yes,DEF,date,|I don't know|, 2018-04-03]]"

read.csv(text=gsub("\\[", "",   #remove "["
                   gsub("\\]","\n", txt)), # replace "]" w/ R-lf's
           header = FALSE, col.names = LETTERS[1:9])
  A B C   D   E   F    G              H           I
1 2 4 6 Yes  No ABC date    (not asked)  2018-01-04
2 1 3 5  No Yes DEF date |I don't know|  2018-04-03