我有一些我希望根据条件连接的角色。
输入:
char_df = data.frame(character = c("a","h","a","o","h","o"),
prediction = c(1,0,0,1,0,0)
)
char_df$character <- as.character(char_df$character)
char_df
character prediction
1 a 1
2 h 0
3 a 0
4 o 1
5 h 0
6 o 0
基本上每次看到1它应该连接字符(但不是第一行) 所以在这种情况下它会做 一个, 啊, 啊哈(完成) o,h,o(完成)
我编写了一个代码来完成它 输出:
words <- list()
word <- NULL
for (i in 1:nrow(char_df)){
word <- paste0(word,char_df[i,1])
if(char_df[i,2]==1 & i > 1 ){
words <- c(words, substring(word,1,nchar(word)-1))
word <- NULL
word = paste0(word,char_df[i,1])
}
}
words <- c(words, substring(word,1,nchar(word)))
预期输出:
do.call(rbind,words)
[,1]
[1,] "aha"
[2,] "oho"
我的问题更多是关于效率的问题,如果您对如何操作有所了解,我确信有更好的方法可以在没有逐行循环的情况下获得预期的输出
由于