保存每一行的文本而不合并

save a text of each row without merge

我用R写了一段代码 在计算字符数后对文本进行一些更改 如果字符数大于 5,则进行更改 它在这里工作是我的代码

dataset<-  c ("there is a rain " , "I am student" )
dataset <-data.frame(x= dataset)
dataset $x<-as.character(dataset $x)
words <- unlist(strsplit(dataset $x, " "))
nchar(words)
K <- character(length(words))
K[nchar(words) < 6] <- words[nchar(words) < 6]
K[nchar(words) > 5] <- gsub('e', 'X', 
                            words[nchar(words) > 5], perl = TRUE)

结果

[1] "there"   "is"      "a"       "rain"    "I"       "am"      "studXnt"

如您所见,它进行了更改,但我的问题是它在文本之间合并 所以如果我有 50 行,那么我不知道文本属于哪一行 因为最后我需要保存对原始文本的更改

我期待的结果

[1] There is a rain 
[2] I am studXnt

谢谢

这是正确的语法,

sapply(strsplit(df$x, ' '), function(i){i[nchar(i) > 5] <- gsub('e', 'X', i[nchar(i) > 5]);
                                        paste(i, collapse = ' ')})

#[1] "there is a rain" "I am studXnt"