例如,我有一个城市30年气温的数据集,该数据集如下所示:

Year  Julian_date  temperature
1991    1             2.1
1991    2             2.2
...     ...           ...
1991    365           2.3
1992    1             2.1
...     ...           ...
1992    365           2.5
...     ...           ...
2020    366           2.5

我想计算每个朱利安日期(不同年份)的第90个百分位值,并返回结果,如:

Julian_date        value(the 90th percentile)
1                  2.4
2                  2.6
...                ...
365                2.5

我应该如何用r编写代码?

推荐答案

您可以先按Julian_date分组,然后使用quantile函数将概率设置为summarise.

library(tidyverse)

df %>% 
  group_by(Julian_date) %>% 
  summarise("value (the 90th percentile)" = quantile(temperature, probs=0.9, na.rm=TRUE))

Output

  Julian_date `value (the 90th percentile)`
        <int>                         <dbl>
1           1                           2.1
2           2                           2.2
3         365                           2.5

Data

df <- structure(list(Year = c(1991L, 1991L, 1991L, 1992L, 1992L, 2020L
), Julian_date = c(1L, 2L, 365L, 1L, 365L, 365L), temperature = c(2.1, 
2.2, 2.3, 2.1, 2.5, 2.5)), class = "data.frame", row.names = c(NA, 
-6L))

R相关问答推荐

在使用tidyModels和XGBoost的二进制分类机器学习任务中,所有模型都失败

函数可以跨多个列搜索多个字符串并创建二进制输出变量

派生程序包| ;无法检索';return()';的正文

将向量元素重新排序为R中的第二个

我如何go 掉盒子图底部的数字?

如何将一个方阵分解成没有循环的立方体

如何使用FormC使简单算术运算得到的数字是正确的?

如何根据未知数的多列排除重复行

如何用不同长度的向量填充列表?

如果极点中存在部分匹配,则替换整个字符串

带有Bootswatch Cerulean主题的shiny 仪表板中的浏览&按钮可见性问题

如何使用包含要子集的值的列表或数据框来子集多个列?

如何从R调用Amazon销售合作伙伴API?

如何在甜甜圈图表中隐藏标签之外

使用for()循环将数据处理应用于数据集的所有行

在R中按组计算每个数据帧列中唯一值的简明方法是什么?

如何比较R中每行数据帧中的嵌套列表?

从组中随机 Select 值序列

如何在R中基于部分字符串匹配替换列名?

R:迭代推算\回补缺失值的函数