首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用(逻辑?)计算频率表达式

使用(逻辑?)计算频率表达式
EN

Stack Overflow用户
提问于 2015-07-17 07:53:34
回答 1查看 109关注 0票数 0

我一直在从头开始自学R,所以请容忍我。我已经找到了多种方法来计算观测值,然而,我正在试图弄清楚如何使用(logical?)表达式。我有一组大约一百万个观察值的海量数据。df的设置如下所示:

代码语言:javascript
复制
    Latitude    Longitude   ID  Year    Month   Day Value
66.16667    -10.16667   CPUELE25399 1979    1   7   0
66.16667    -10.16667   CPUELE25399 1979    1   8   0
66.16667    -10.16667   CPUELE25399 1979    1   9   0

有154个唯一ID和类似的154个唯一的经纬度。我将重点放在每个唯一ID的所有值的前1%,对于每个唯一ID,我已经使用它们的关联值计算了第99个百分位数。我走得更远,计算了每个ID的第99个百分位数,即每个年份和月份。对于1979年month=1的CPUELE25399,第99个百分位值是3 (3是前1%的下限)

使用这些阈值:对于每个ID,对于每年,对于每个月-我需要计算值>=达到第99个百分比的次数(每月,每年)

我已经尝试了至少100种不同的方法,但我认为我从根本上误解了一些东西,可能是在语法上?这是让我走得最远的一段代码:

代码语言:javascript
复制
ddply(Total,
      c('Latitude','Longitude','ID','Year','Month'),
        function(x) c(Threshold=quantile(x$Value,probs=.99,na.rm=TRUE),
                      Frequency=nrow(x$Value>=quantile(x$Value,probs=.99,na.rm=TRUE))))

R抛出一条警告消息,说明>=对因子没有用处?如果有任何人理解这个令人费解的信息,我将非常感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2015-07-17 08:35:57

使用以下阈值:对于每个ID、每年、每个月-我需要计算值>=达到第99个百分比的次数(每月、每年)

这是不是意味着你想

  1. 计算每个ID的第99个百分位数(即忽略月、年等),然后
  2. 计算出您超过此值的次数,但现在按月和年以及ID进行划分-

(注意:您的示例代码按经度/经度分组,但您的问题中没有提到这一点,所以我忽略它。如果您希望将其添加到中,只需将其作为分组变量添加到适当的位置即可。

在这种情况下,您可以先使用ddply计算每个ID的百分位数:

代码语言:javascript
复制
# calculate percentile for each ID
Total <- ddply(Total, .(ID), transform, Threshold=quantile(Value, probs=.99, na.rm=T))

现在你可以按(ID,月份和年份)分组,看看你超过了多少次:

代码语言:javascript
复制
Total <- ddply(Total, .(ID, Month, Year), summarize, Freq=sum(Value >= Threshold))

请注意,summarize将返回一个数据帧,其中的行数与.(ID, Month, Year)的列数相同,也就是说,将丢弃所有的纬度/经度列。如果您想保留它,请使用transform而不是summarize,然后对于每个(ID,Mon,Year)组合,将对所有不同的(经度,经度)重复Freq

ddply上的注释:

  • 可以像
  • 那样执行.(ID, Month, Year)而不是c('ID', 'Month', 'Year')如果您只想添加额外的列,使用summarizemutatetransform之类的命令可以让您灵活地执行此操作,而无需在列名前面执行所有Total$
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31466419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档