r - 在R中逐行划分它下面
问题描述
我有一个像这样的数据框:
block partner prSwitch
1 p1 0.06666667
1 p2 0.06666667
2 p1 0.03333333
2 p2 0.06666667
3 p1 0.10000000
3 p2 0.06666667
4 p1 0.06666667
4 p2 0.03333333
5 p1 0.10000000
5 p2 0.13333333
6 p1 0.06666667
6 p2 0.23333333
我想用 p1 将每一行与 p2 在同一块中的一行和每个块分开。
我希望我的新 df 看起来像这样:
block prSwitch of p1/p2
1 0.06666667
2 0.03333333
3 0.10000000
4 0.06666667
5 0.10000000
6 0.06666667
谢谢 !
解决方案
使用dplyr
:
library(dplyr)
your_data %>%
group_by(block) %>%
summarize(prSwitch_p1_p2_ratio = prSwitch[partner == "p1"] / prSwitch[partner == "p2"])
如果您在一个块中没有单个p1
和,这将引发错误。p2
推荐阅读
- ios - 允许外部存储崩溃的核心数据二进制数据
- python - Pandas - 搜索字词(不考虑搜索字词的大小写)
- python - 使用 numpy.genfromtxt 读取缺少数据字段的 ASCII 文件
- arrays - 我可以在 Angular 2+ 模板中执行数组方法吗
- vue.js - VueJS - 挂载钩子中的错误:“TypeError:this.$store 未定义”
- java - Java 8 可选的多级空值检查
- javascript - 在javascript中将项目添加到数组中
- excel - Excel VBA 宏使用动态数据范围创建数据透视表:源数据范围错误
- amazon-web-services - 一个 Lambda 容器可以同时托管多个函数吗?
- java - 为什么在 System.Logger 中使用 log(DEBUG, msg) 而不是 debug(msg)?