r - R dplyr:对不同的组使用不同的条件进行过滤
问题描述
我有一个由 ID 和年份标识的面板数据集。我需要按变量“小时”过滤数据集,但是对于不同的年份,我想对小时施加不同的标准。
这是我正在尝试做的,但由于if
与向量不兼容,因此以下代码不起作用
data <- data %>%
filter(
if(year == 2014 | year == 2016){
(hours >= 35 & hours <= 105)
}else if (year == 2012){
(hours >= 30 & hours <= 100)
}
)
一个类似的问题是如何仅对某些年份进行过滤而忽略其余年份。
解决方案
data %>%
filter((year %in% c(2014, 2016) & between(hours, 35, 105)) | (year == 2012 & between(hours, 30, 100)))
推荐阅读
- sql - sql拆分SQL SERVER 2019中逗号的列
- asp.net-mvc-5 - 收到 Stripe Webhook 后将项目保存在数据库中
- reactjs - 在 React 组件笑话测试中模拟 Axios 实例和拦截器
- c++ - 使用使用旧版本 Xcode 构建的 C 库是否安全?
- javascript - Google Apps 脚本多个用户使用相同的功能和 javascript 问题
- javascript - 如何使三个 JS 中的 TextGeometry 跟随鼠标?
- scala - 模式匹配带有 head :: tail 的列表(使用什么模式)?
- html - 如何使用 Angularjs 添加图像
- aws-lambda - AWS lambda 缺少来自 dynamodb 流的事件
- python - 减去两个不同形状的 np.ndarray