r - 如果满足条件,则计算案例:按列分组
问题描述
我想获得符合特定条件的案例的数量和百分比,按另一列分组。
组是城市,条件是hour >= 6
。
例如
city hour
A 7
A 6
A 3
B 2
C 7
我想得到
city hour>=6
A 2
B 1
C 0
并且比每个百分比都基于城市的案例。
city hours >= 6 (%)
A 0.6666667
B 1.0000000
C 0.0000000
City --- hour
我想我快到了
aggregate(hours, list(city), mean)
我得到了城市的小时平均值,但我不明白如何得到其他结果。
MG
解决方案
使用包dplyr
数据:
df1<-data.frame(city=c(rep("A",3), "B","C"), hour = c(7,6,3,2,7))
代码:
df1 %>% group_by(city) %>% summarise(hourLHE6 = sum(hour <= 6), hourPCT = sum(hour <= 6)/length(hour))
结果:
## A tibble: 3 x 3
# city hourLHE6 hourPCT
# <fct> <int> <dbl>
#1 A 2 0.667
#2 B 1 1
#3 C 0 0
推荐阅读
- arduino - Arduino Uno:从 Cubase 捕获 MIDI 以在按下 PLAY、STOP、RECORD 时打开 RECORDING 标志
- ios - CoreData 轻量级迁移问题
- c++ - 这个结构的大小是多少?在线编译器显示不同
- r - 在 1:100 的数字序列中,使用循环在 R 中打印
- docker - 在安全容器中运行 DHCP 服务器
- checksum - 为什么 web3.js 拒绝有效的 RSK 智能合约地址?
- java - 将 PHP 转换为 Java
- amazon-web-services - 如何创建 AWS ec2 实例克隆以使用单独的域名重新设计网站?
- javascript - 如何更改 Highcharts 中饼图的图例形状?
- r - 如何显示带有总数的图