R语言ggplot调用dplyr::filter时报Pad_Number对象未找到错误求解
R语言dplyr过滤报错原因及修复方案
报错原因
dplyr::filter()的第一个参数必须是待操作的数据集对象,你代码中直接传入了列名Pad_Number,R会将其作为全局环境下的独立对象检索,找不到对应变量就会抛出该错误。- 你需要过滤的是
Breast_Coil_Comfort数据集下符合条件的行,而非过滤Pad_Number这个列本身。
修复方案
场景1:仅按数值条件过滤标记点
如果你不需要筛选特定Pad_Number取值,只需要把所有符合数值条件的点标红,把filter的第一个参数替换为数据集即可:
ggplot(data = Breast_Coil_Comfort, mapping = aes(x = Comfort_Level, y = Pain_Level)) + geom_point() + geom_point(data = dplyr::filter(Breast_Coil_Comfort, Comfort_Level > 0, Pain_Level > 2), colour = "red", size = 2.2)
场景2:同时过滤特定Pad_Number取值
如果你原本的需求是筛选某个Pad_Number下符合数值条件的点,把Pad_Number的匹配规则加到过滤条件里即可,示例为筛选Pad_1的代码:
ggplot(data = Breast_Coil_Comfort, mapping = aes(x = Comfort_Level, y = Pain_Level)) + geom_point() + geom_point(data = dplyr::filter(Breast_Coil_Comfort, Pad_Number == "Pad_1", Comfort_Level > 0, Pain_Level > 2), colour = "red", size = 2.2)
内容的提问来源于stack exchange,提问作者yfalls
相关产品推荐
相关产品推荐

