Разделить список на датафреймы через запятую - PullRequest
0 голосов
/ 19 февраля 2019

Это может быть дубликатом, но через некоторое время я все еще не нашел простой, адекватный ответ для 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 Ответ

0 голосов
/ 19 февраля 2019

Замените все "]" с переводами строки и удалите "[", т.е. обработайте 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...