r - 在 R 中的某些观察之前选择组
问题描述
说
data=structure(list(x1 = c(88L, 88L, 94L, 82L, 68L, 72L, 43L, 84L,
65L, 91L, 65L, 80L, 82L, 63L, 67L, 58L, 100L, 32L, 75L, 66L,
30L, 12L, 97L, 58L, 14L, 64L), group = structure(c(2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("female", "male"), class = "factor")), .Names = c("x1",
"group"), class = "data.frame", row.names = c(NA, -26L))
在这个数据中有组变量(性别(男性和女性)我需要得到统计平均值和 25 个百分位的所有男性,在女性之前。男性在女性之后,我不碰。还有女性我不碰。所以作为输出
x1 group mean 25%
88 male 76,36 66,5
88 male 76,36 66,5
94 male 76,36 66,5
82 male 76,36 66,5
68 male 76,36 66,5
72 male 76,36 66,5
43 male 76,36 66,5
84 male 76,36 66,5
65 male 76,36 66,5
91 male 76,36 66,5
65 male 76,36 66,5
80 female
82 female
63 female
67 female
58 female
100 female
32 female
75 male
66 male
30 male
12 male
97 male
58 male
14 male
64 male
怎么做?
编辑
x1 group
88 male
88 male
94 male
82 male
68 male
72 male
43 male
84 male
65 male
91 male
65 male
80 female
82 female
63 female
67 female
58 female
100 female
32 female
**76,36 male
**76,36 male
30 male
12 male
**76,36 male
58 male
14 male
64 male
这里的结果。
解决方案
在data.table
中,您可以编辑其中的行,rleid(group) == 1
即第一组行,按 的值分组group
。
library(data.table)
setDT(df)
df[rleid(group) == 1, `:=`(mean = mean(x1), Q25 = quantile(x1, 0.25))]
结果
# x1 group mean Q25
# 1: 88 male 76.36364 66.5
# 2: 88 male 76.36364 66.5
# 3: 94 male 76.36364 66.5
# 4: 82 male 76.36364 66.5
# 5: 68 male 76.36364 66.5
# 6: 72 male 76.36364 66.5
# 7: 43 male 76.36364 66.5
# 8: 84 male 76.36364 66.5
# 9: 65 male 76.36364 66.5
# 10: 91 male 76.36364 66.5
# 11: 65 male 76.36364 66.5
# 12: 80 female NA NA
# 13: 82 female NA NA
# 14: 63 female NA NA
# 15: 67 female NA NA
# 16: 58 female NA NA
# 17: 100 female NA NA
# 18: 32 female NA NA
# 19: 75 male NA NA
# 20: 66 male NA NA
# 21: 30 male NA NA
# 22: 12 male NA NA
# 23: 97 male NA NA
# 24: 58 male NA NA
# 25: 14 male NA NA
# 26: 64 male NA NA
# x1 group mean Q25
推荐阅读
- python-3.x - mplfinance KeyError:'打开'
- r - 使用 R 将 Postgres bytea 列(包含图像)解码为二进制格式
- c# - 将多个元素添加到列表
- mongodb - 如果另一个数组字段的大小大于 5,则 Mongoose 更新字段
- c# - C# JSON.net 反序列化对象
用 null 填充 a - angular - Angular 9 RxJs Websockets / WebSocketSubject 未收到来自服务器的消息
- python - Python代码在shell中工作正常,但在文件中调用时不能
- angular - Angular emoji-mart 加载时间过长
- ios - 如何在 iOS 存储设置中显示下载的视频
- typescript - 打字稿传播对象自动与类型相交