Я новичок в R, и в настоящее время я борюсь с тем, как разделить строки в каждой строке фрейма данных, а затем создать новую строку с измененной строкой (наряду с изменением оригинала).Это пример ниже, но фактический набор данных намного больше.
library(dplyr)
library(stringr)
library(tidyverse)
library(utils)
posts_sentences <- data.frame("element_id" = c(1, 1, 2, 2, 2), "sentence_id" = c(1, 2, 1, 2, 3),
"sentence" = c("You know, when I grew up, I grew up in a very religious family, I had the same sought of troubles people have, I was excelling in alot of ways, but because there was alot of trouble at home, we were always moving around", "Im at breaking point.I have no one to talk to about this and if I’m honest I think I’m too scared to tell anyone because if I do then it becomes real.I dont know what to do.", "I feel like I’m going to explode.", "I have so many thoughts and feelings inside and I don't know who to tell and I was going to tell my friend about it but I'm not sure.", "I keep saying omg!it's too much"),
"sentence_wc" = c(60, 30, 7, 20, 7), stringsAsFactors=FALSE)
Я хочу разбить предложения, которые превышают определенное количество слов (15 для этого набора данных), создать новые предложения изнутрив более длинных предложениях используется регулярное выражение, так что сначала я пытаюсь разбить его по периодам (или другим символам), затем, если количество слов все еще слишком велико, я пытаюсь запятые, за которыми следует I (или заглавная буква), а затем я пытаюсь 'и'сопровождаемый заглавной буквой и т. д. Каждый раз, когда я создаю новое предложение, ему необходимо изменить предложение со старой строки на первую часть предложения, а также изменить количество слов (у меня есть функция для этого) вместе сс созданием новой строки с тем же идентификатором элемента, идентификатором предложения, который следует за последовательностью (если значение_пункта равно 1, теперь новым предложением равно 2), счетчиком слов нового предложения, а затем заменой всех следующих предложений на следующее число предложений_ид,
Я работаю над этим несколько дней и не могу понять, как это сделать.Я пытался использовать нестандартные токены, str_split / extract и различные комбинации фильтров, мутаций и т. Д. Dplyr вместе с поиском в Google / SO.Кто-нибудь знает лучший способ сделать это?Dplyr предпочтительнее, но я открыт для всего, что работает.Не стесняйтесь задавать вопросы, если вам нужны какие-либо разъяснения!
Изменить, чтобы добавить ожидаемый кадр выходных данных:
expected_output <- data.frame("element_id" = c(1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2), "sentence_id" = c(1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6),
"sentence" = c("You know, when I grew up", "I grew up in a very religious family", "I had the same sought of troubles people have", "I was excelling in alot of ways, but because there was alot of trouble at home, we were always moving around", "Im at breaking point.", "I have no one to talk to about this and if I’m honest I think I’m too scared to tell anyone because if I do then it becomes real.", "I dont know what to do.", "I feel like I’m going to explode.", "I have so many thoughts and feelings inside and", "I don't know who to tell and", "I was going to tell my friend about it but I'm not sure.", "I keep saying omg!", "it's too much"),
"sentence_wc" = c(6, 8, 8, 21, 4, 27, 6, 7, 9, 7, 13, 4, 3), stringsAsFactors=FALSE)