Разделить список на датафреймы через запятую

Это может быть дубликатом, но через некоторое время я все еще не нашел простой, адекватный ответ для R.

У меня есть список answers содержит данные с разделителями-запятыми различных типов (числа, символы, строки, даты) в многочисленных строках. Как я делю это так, чтобы у каждой строки было много столбцов с каждым значением данных в этом?

Я пытался с strsplit а также separate функции, но не удалось.


Мои текущие данные выглядят так:

[[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 ответ

Решение

Заменить все "]" с переводами строки и удаления "["Проанализирую процесс с read.csv:

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
Другие вопросы по тегам