#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. Спасибо, но возможно ли это без замены фактическими символами новой строки?