Разделение строки запятой и новой строкой

#r #tidyr #stringr

#r #tidyr #stringr

Вопрос:

У меня есть строка, которая выглядит как

 '"aaa","bbb","ccc","ddd","eee"n"1","2","3","4","5"n"6","7","8","9","10"'
  

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

 aaa bbb ccc ddd eee
1   2   3   4  5
6   7   8   9  10

  

Есть ли какой-нибудь способ сделать это в R?

Комментарии:

1. Что такое s ? Это недопустимый объект R.

2. @suren Я только что отредактировал это. У меня просто есть строка, и ее необходимо преобразовать в фрейм данных указанного выше формата.

Ответ №1:

Я предполагаю, что ваша строка

 s = '"aaa","bbb","ccc","ddd","eee"n"1","2","3","4","5"n"6","7","8","9","10"'
  

тогда, возможно, вы можете попробовать

 > read.table(text = s, header = TRUE, sep = ",")
  aaa bbb ccc ddd eee
1   1   2   3   4   5
2   6   7   8   9  10
  

Более короткий (благодаря комментариям от @akrun) с data.table::fread

 > fread(s)
   aaa bbb ccc ddd eee
1:   1   2   3   4   5
2:   6   7   8   9  10
  

или read.csv (спасибо за комментарии от @thelatemail)

 > read.csv(text = s)
  aaa bbb ccc ddd eee
1   1   2   3   4   5
2   6   7   8   9  10
  

Комментарии:

1. Это файл csv, поэтому используйте read.csv read.csv(text=x)

2. @thelatemail также благодарит вас

Ответ №2:

Вот вариант использования read.table , хотя для этого я удалил некоторые кавычки, запятые и новые строки (заменены фактическими новыми строками).

 df <- read.table(header = TRUE, 
                 text="aaa bbb ccc ddd eee 
                 1 2 3 4 5 
                 6 7 8 9 10")              
  

Вывод:

   aaa bbb ccc ddd eee
1   1   2   3   4   5
2   6   7   8   9  10
  

Комментарии:

1. Спасибо, но возможно ли это без замены фактическими символами новой строки?