我已经阅读了很多“如何获得百分位数”的答案,但无法找到解决问题的方法。
我有一个包含3列的data.frame:心率(每分钟节拍),温度(范围从35到45 - 没有小数),活动(范围从1到15 - 没有小数)。
我想添加第4列,其中心率的百分位值考虑了由给定温度和给定活动表征的心率分布。
实施例: 在温度= 37和活动= 5时,心率为每分钟60次,有百分位...
#example of data frame
n = 1000
df <- data.frame(HeartRate = round(runif(n, 60, 100)),
Temperature = round(runif(n, 35, 45)),
Activity = round(runif(n, 1, 15)))
非常感谢您的帮助。
答案 0 :(得分:0)
试试这个?如果它不符合您的目的,请提供您的数据样本和你期望输出看起来像什么。
library(dplyr)
# generate dummy data
n = 1000
df <- data.frame(HeartRate = round(runif(n, 60, 100)),
Temperature = round(runif(n, 35, 45)),
Activity = round(runif(n, 1, 15)))
df %>% group_by(Temperature, Activity) %>%
mutate(Percentile = percent_rank(HeartRate)) %>%
ungroup()