我的R代码中有一个向量x,长度为4。我将第一个和第二个元素连接在一起,然后从向量中删除了第二个元素。如何从向量中完全删除元素,使其长度为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))
它适用于上面的示例,但假设我将Galazin更改为GalazinB。然后将向量保留5个元素,并且不将Galazin B.与句子的其余部分连接。有想法吗?
答案 0 :(得分:0)
稍微修改您的代码:最好对单词进行计数,而不是用“”进行拆分,并对拆分项进行计数(因为句子开头将被计为其他项)。我宁愿使用while,因为inn的长度按循环变化:
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