R语言从dataframe中筛选满足双列条件的连续行序列
解决方案
核心逻辑:先将连续的Seq非NA行划分为同一分组,再筛选组内第一行满足Q == "q_misc"的所有组内行即可。
library(dplyr) df %>% # 按Seq是否为NA切分连续块,每遇到一次Seq为NA就生成新分组 group_by(seq_group = cumsum(is.na(Seq))) %>% # 保留分组第一行Q为q_misc的所有组内行 filter(first(Q) == "q_misc") %>% # 清除分组和辅助列 ungroup() %>% select(-seq_group)
运行上述代码即可得到你需要的输出结果。
你之前的代码仅筛选了同时满足Q == "q_misc"和Seq非NA的单行,因此只能返回两个序列的首行,无法保留同组的后续行。
内容的提问来源于stack exchange,提问作者Chris Ruehlemann
相关产品推荐
相关产品推荐

