сохранить текст каждой строки без слияния - PullRequest
0 голосов
/ 27 декабря 2018

Я написал код на 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

Спасибо

1 Ответ

0 голосов
/ 27 декабря 2018

Вот правильный синтаксис, чтобы сделать это,

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"
...