如何用dplyr筛选满足5个变量中至少3个偏好条件的行?
用dplyr筛选满足至少3个偏好条件的行
核心思路是把每个变量是否匹配偏好值的判断转化为数值(TRUE=1,FALSE=0),求和后筛选总和≥3的行即可,给你具体实现代码:
首先定义各变量的偏好值(根据你的实际需求替换):
# 替换成你的实际偏好值 pref_mobile <- "你的移动设备偏好值" pref_budget <- "你的预算偏好值" pref_car <- "Audi" # 比如你提到的Car brand偏好Audi pref_age <- "你的年龄区间偏好值"
然后用dplyr的filter函数筛选,注意如果变量名带空格(比如Mobile device),要用反引号把变量名包裹起来:
library(dplyr) filtered_data <- 你的数据集名称 %>% filter( (`Mobile device` == pref_mobile) + (Budget == pref_budget) + (`Car brand` == pref_car) + (Age == pref_age) >= 3 )
原理很直白:R里逻辑值参与数值计算时,TRUE会被转为1,FALSE转为0。四个条件的和≥3,就代表至少有3个变量匹配了你的偏好值,这样就能精准筛选出目标子集。
举个例子:某一行数据里,Mobile device匹配偏好、Car brand是Audi、Age匹配偏好,哪怕Budget不匹配,总和是3,也会被保留下来。
内容的提问来源于stack exchange,提问作者Fernando A Fregoso Ocampo
相关产品推荐
相关产品推荐

