如何用filter函数移除数据集特定样本?附代码补全及ifelse疑问
解决方法
1. 补全filter代码移除缺失样本
直接在filter()中指定筛选条件,保留马力(hp)值不等于"?"的样本即可:
library(dplyr) # 先确保加载dplyr包 autompg = autompg %>% filter(hp != "?")
2. 关于结合ifelse函数实现的问题
可以用,但完全没必要——filter()本身就是基于逻辑条件筛选行,直接写hp != "?"比嵌套ifelse更简洁。
如果一定要用ifelse,写法应该是:
autompg = autompg %>% filter(ifelse(hp == "?", FALSE, TRUE))
这里的test_expression是hp == "?",当条件为真(即hp是"?")时返回FALSE(过滤掉该行),条件为假时返回TRUE(保留该行)。
你之前写的nrow=ifelse(...)是错误的,filter()不需要赋值给nrow,它只需要一个逻辑向量来判断哪些行保留、哪些丢弃。
内容的提问来源于stack exchange,提问作者Ankita
相关产品推荐
相关产品推荐

