Как удалить все бесполезные элементы вектора в R? - PullRequest
0 голосов
/ 25 августа 2018

У меня есть вектор строк x длиной 4 в моем коде R.Я сцепил первый и второй элемент, затем удалил второй элемент из вектора.Как я могу полностью удалить элемент из вектора, чтобы он оставался длиной 4?Надеюсь, что это имеет смысл!Не уверен, что я хорошо объясняю, поэтому включен в приведенный ниже код.

inning <- "Valente T. flied out to lf (1-0 B). Galazin grounded out to 2B (1-2 FBS). Shaw singled through the left side (0-0). Boselli Iii flied out to cf (0-2 KF)."

inn <- unlist(strsplit(inning, "[.]"))

for (i in 1:length(inn)){
ab_length <- sapply(strsplit(inn[i], " "), length)
if(ab_length<3){
    inn[i] <- paste(inn[i], inn[i+1])
    inn <- inn[-(i+1)]
    inn <- remove.na(inn)
} # end if
} # end for

num <- rep(0, length(inn))

Это работает для приведенного выше примера, но, скажем, я заменяю Галазин на Галазин B. Затем он оставляет вектор на 5 элементов и нене соединять Галазина Б. с остальной частью предложения.Мысли? * * 1004

1 Ответ

0 голосов
/ 26 августа 2018

Немного измените свой код: лучше посчитать слово, а не разделить на "" и считать элементы в разбиении (так как начало предложения будет учитываться как дополнительный элемент). Я предпочел бы использовать время, так как длина гостиницы меняется в цикле:

 library(stringr)

 inning <- "Valente T. flied out to lf (1-0 B). Galazin B. grounded out to 2B (1-2 FBS). Shaw singled through the left side (0-0). Boselli Iii flied out to cf (0-2 KF)."
 inn <- unlist(strsplit(inning, "[.]"))

  i<-1
  while (i < length(inn)){
   ab_length <- str_count(inn[i], '\\w+')

   if(ab_length<3){
     inn[i] <- paste(inn[i], inn[i+1])
     inn <- inn[-(i+1)]
   }# end if
   i <-i+1
 } # end 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...