使用dplyr过滤dataframe中所有列均为NA的行的实现方法
错误原因
你之前的两种写法过滤逻辑都是要求行内所有列均为非NA值才保留,但你的数据中部分列(例如speaker列)本身存在合法的NA值需要保留,因此会误删目标行,无法得到正确结果。
正确实现
你需要的过滤逻辑是仅删除所有列全为NA的行,使用if_all()判断行是否全为NA后取反即可,代码如下:
library(dplyr) df %>% mutate(timestamp = lead(timestamp)) %>% filter(!if_all(everything(), is.na))
运行上述代码即可得到你期望的输出结果。
内容的提问来源于stack exchange,提问作者Chris Ruehlemann
相关产品推荐
相关产品推荐

