r - 如何选择分组数据的第一个值并在 R 中进行比较?
问题描述
我想比较分组(按 ID 分组)数据集中 x1 和 x2 的第一个值。如果 x1 的第一个分组值大于 x2 的第一个分组值,我将 ID 分配为 1,否则为 0。让我在一个示例中向您展示。您可以在下面看到我的输入变量
dt<-data.frame(ID=c(100, 100, 101, 101, 101), x1=c(1200, 1600, 1350, 1400, 1500),
x2=c(1100, 1410, 1900, 1300, 1100))
由于 1200 > 1100,我将 1 分配给 ID 100,由于 1350 < 1900,我将 0 分配给 ID 101。最后,我的输出将是
res<-data.frame(ID=c(100, 101), res=c(1,0))
我怎样才能做到这一点?
谢谢
解决方案
您也可以使用以下解决方案。我希望我得到你的想法是正确的:
library(dplyr)
dt %>%
group_by(ID) %>%
summarise(res = ifelse(first(x1) > first(x2), 1, 0))
# A tibble: 2 x 2
ID res
<dbl> <dbl>
1 100 1
2 101 0
推荐阅读
- java - 如何为Java循环中的数组索引赋值?
- firebase - 如何通过点击 Flutter 对 Firestore 云文档进行分类
- python - 如何从列表中返回值字典?
- python - matplotlib 设置轴限制不起作用
- r - 用于历史计算 VaR 的 R 函数和包
- jenkins - Jenkins Pipeline 不提供 Bitbucket Server 环境变量
- java - 如何在 android java 中使用 volley 获取内部信息对象
- amazon-web-services - 如何在 Web UI 上显示 AWS Managed Airflow 环境名称
- forms - antd形式:判断初始值是否改变
- python - 如何在烧瓶中使用 if 语句仅在特定 url 上呈现代码