У меня есть текстовая переменная и переменная группировки. Я хотел бы свернуть текстовую переменную в одну строку на строку (объединить) по фактору. Так что, пока столбец группы говорит m
, я хочу сгруппировать текст вместе и так далее. Я предоставил примерный набор данных до и после. Я пишу это для пакета и до сих пор избегал всякой зависимости от других пакетов, кроме wordcloud
, и хотел бы сохранить его таким образом.
Я подозреваю, что rle
может быть полезным с cumsum
, но не смог понять это.
Заранее спасибо.
Как выглядят данные
text group
1 Computer is fun. Not too fun. m
2 No its not, its dumb. m
3 How can we be certain? f
4 There is no way. m
5 I distrust you. m
6 What are you talking about? f
7 Shall we move on? Good then. f
8 Im hungry. Lets eat. You already? m
Как бы я хотел, чтобы данные выглядели как
text group
1 Computer is fun. Not too fun. No its not, its dumb. m
2 How can we be certain? f
3 There is no way. I distrust you. m
4 What are you talking about? Shall we move on? Good then. f
5 Im hungry. Lets eat. You already? m
Данные
dat <- structure(list(text = c("Computer is fun. Not too fun.", "No its not, its dumb.",
"How can we be certain?", "There is no way.", "I distrust you.",
"What are you talking about?", "Shall we move on? Good then.",
"Im hungry. Lets eat. You already?"), group = structure(c(2L,
2L, 1L, 2L, 2L, 1L, 1L, 2L), .Label = c("f", "m"), class = "factor")), .Names = c("text",
"group"), row.names = c(NA, 8L), class = "data.frame")
РЕДАКТИРОВАТЬ: Я обнаружил, что могу добавить уникальный столбец для каждого запуска переменной группы с помощью:
x <- rle(as.character(dat$group))[[1]]
dat$new <- as.factor(rep(1:length(x), x))
Уступая:
text group new
1 Computer is fun. Not too fun. m 1
2 No its not, its dumb. m 1
3 How can we be certain? f 2
4 There is no way. m 3
5 I distrust you. m 3
6 What are you talking about? f 4
7 Shall we move on? Good then. f 4
8 Im hungry. Lets eat. You already? m 5