根据条件分割字符来做一个单词

时间:2017-07-03 04:00:57

标签: r

我有一些我希望根据条件连接的角色。

输入:

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"

我的问题更多是关于效率的问题,如果您对如何操作有所了解,我确信有更好的方法可以在没有逐行循环的情况下获得预期的输出

由于

0 个答案:

没有答案