获取连续日值的总和

2023-12-08

我有一个大数据集,如下所示:

Date       rain code
2009-04-01  0.0 0 
2009-04-02  0.0 0 
2009-04-03  0.0 0 
2009-04-04  0.7 1 
2009-04-05 54.2 1  
2009-04-06  0.0 0 
2009-04-07  0.0 0 
2009-04-08  0.0 0 
2009-04-09  0.0 0 
2009-04-10  0.0 0 
2009-04-11  0.0 0 
2009-04-12  5.3 1  
2009-04-13 10.1 1  
2009-04-14  6.0 1  
2009-04-15  8.7 1  
2009-04-16  0.0 0 
2009-04-17  0.0 0 
2009-04-18  0.0 0 
2009-04-19  0.0 0 
2009-04-20  0.0 0 
2009-04-21  0.0 0 
2009-04-22  0.0 0 
2009-04-23  0.0 0 
2009-04-24  0.0 0 
2009-04-25  4.3 1  
2009-04-26 42.2 1  
2009-04-27 45.6 1  
2009-04-28 12.6 1  
2009-04-29  6.2 1  
2009-04-30  1.0 1  

当代码为“1”时,我试图计算连续降雨值的总和,并且我需要分别计算它们的总和。例如我想获得降雨值的总和2009-04-12 to 2009-04-15。所以我试图找到方法来定义代码何时等于 1 并且有连续的降雨值,我得到它们的总和。

对上述问题的任何帮助将不胜感激。


一种简单的解决方案是使用rle。但我怀疑可能有更“优雅”的解决方案。

# assuming dd is your data.frame
dd.rle <- rle(dd$code)
# get start pos of each consecutive 1's
start  <- (cumsum(dd.rle$lengths) - dd.rle$lengths + 1)[dd.rle$values == 1]
# how long do each 1's extend?
ival   <- dd.rle$lengths[dd.rle$values == 1]
# using these two, compute the sum
apply(as.matrix(seq_along(start)), 1, function(idx) {
    sum(dd$rain[start[idx]:(start[idx]+ival[idx]-1)])
})

# [1]  54.9  30.1 111.9

Edit:一个更简单的方法rle and tapply.

dd.rle <- rle(dd$code)
# get the length of each consecutive 1's
ival <- dd.rle$lengths[dd.rle$values == 1]
# using lengths, construct a `factor` with levels = length(ival)
levl  <- factor(rep(seq_along(ival), ival))
# use these levels to extract `rain[code == 1]` and compute sum
tapply(dd$rain[dd$code == 1], levl, sum)

#    1     2     3 
# 54.9  30.1 111.9 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取连续日值的总和 的相关文章

  • R:如何应用输出多列数据帧的函数(使用 dplyr)?

    我想查找数据框中某一特定列与所有其他列之间的相关性 p 值和 95 CI broom 包提供了一个示例 说明如何使用带有 dplyr 和管道的 cor test 在两列之间执行此操作 对于 mtcars 和 mpg 列 我们可以与另一列进行
  • 如果没有找到值,如何让 MySQL 中的 SUM 函数返回“0”?

    假设我在 MySQL 中有一个简单的函数 SELECT SUM Column 1 FROM Table WHERE Column 2 Test 如果没有条目Column 2 包含文本 Test 然后该函数返回NULL 而我希望它返回 0 我
  • dplyr / left_join 中的嵌套管链

    在尝试获取分组滞后变量的过程中 仅使用这是不可能的 lag 建议的解决方案是将数据拉出 滞后不同的行 然后重新加入它 我更喜欢在不创建中间对象的情况下执行此操作 并且希望在链中间执行此操作 然而 它似乎没有像我预期的那样工作 问题似乎是使用
  • 长变量名在 dplyr 中失败

    长度超过 39 个字符的字符串在 dplyr 中失败 返回错误 错误 索引超出范围 我错过了什么还是这是一个错误 40 个字符不起作用 library dplyr names iris 5 lt vvv 5vvv10vvv15vvv20vv
  • grep() 搜索数据框的列名

    有没有更清晰 更简单 更直接 更短的方法来做到这一点 其中 df1 是数据框 names df1 grep Yield names df1 我想返回任何包含单词 yield 的列名称 Thanks grep has a value应该适用于
  • 简单的数据框重塑

    我刚刚从长时间的写作中断中回到 R 并且在记住如何重塑数据方面遇到了一些实际问题 我知道我想做的事情很容易 但出于某种原因 我今晚很愚蠢 并且将自己与融化和重塑混淆了 如果有人能快速指出我正确的方向 我将不胜感激 我有一个这样的数据框 pe
  • 如果“testthat”测试在“R”中失败,则打印自定义诊断信息

    I use a testthat单元测试来检查是否data frame函数返回的结果与我期望它返回的结果相同 如果测试失败 testthat打印一些诊断信息 例如 MyFunction df orig is not identical to
  • 如何使用 r 中的 caret 包在最佳调整超参数的 10 倍交叉验证中获得每次折叠的预测?

    我试图使用 R 中的插入符包使用 10 倍交叉验证和 3 次重复来运行 SVM 模型 我想使用最佳调整的超参数获得每次折叠的预测结果 我正在使用以下代码 Load packages library mlbench library caret
  • R 中的 NA 替换函数

    我正在尝试替换矩阵中的 NA mat 零 我在用着mat is na mat lt 0 当我有 18946 个变量的 94531 个观察值或更小的矩阵时 效果很好 但我在 22752 个变量的 112039 个观察值的矩阵上尝试它 R 显示
  • dplyr 中的 Summarize 是否可以不删除数据框中的其他列?

    我有一个包含三列的数据框 我正在尝试进行简单的总结以查找数据框中每个城市的最高温度 但同时保留每个最高温度列出的日期 这是数据框 我们称之为 maxT new ID Date Max TemperatureF 1 TUS 1960 04 0
  • 将 JSON URL 转换为 R 数据帧

    我在将 JSON 文件 从 API 转换为 R 中的数据帧时遇到问题 例如 URL 我尝试了 S O 的一些不同建议 包括将json数据转换为R中的数据框 https stackoverflow com questions 28683769
  • 如何让R使用所有处理器?

    我有一台运行 Windows XP 的四核笔记本电脑 但查看任务管理器 R 似乎一次只使用一个处理器 如何让 R 使用全部四个处理器并加速我的 R 程序 我有一个基本系统 我使用它在 for 循环上并行化我的程序 一旦您了解需要做什么 此方
  • 如何在不循环的情况下添加组ID?

    我有数据框 例如 productid ordernum p1 10 p2 20 p3 30 p4 5 p5 20 p6 8 我想添加另一列 称为 groupid 它将产品按顺序分组在一起 一旦 sum ordernum 达到 30 分配一个
  • 熊猫按 n 最大总和分组

    我正在尝试使用groupby nlargest and sum在 Pandas 中一起运行 但在运行时遇到困难 State County Population Alabama a 100 Alabama b 50 Alabama c 40
  • 如何在 R 中为传单中的数值变量设置不对称颜色渐变

    我想让传单调色板以零为中心 红白绿发散 我已经尝试过中所说的这个帖子 https stackoverflow com questions 29262824 r center color palette on 0 当我尝试手动创建颜色时 我得
  • R 中的发散积分可在 Wolfram 中求解

    我知道我以前问过同样的问题 但由于我是新来的 这个问题问得不好而且不可重现 因此我在这里尝试做得更好 如果我只编辑旧的 可能没有人会读它 我有一个想要积分的二重积分 ff lt function g t exp 16 g exp 8 t t
  • R:将 readRDS 应用于 .Rds 文件名的列表对象

    我有几个包含数据帧对象的 Rds 文件 我想对每个文件应用一个函数并将数据帧绑定到单个数据帧中 但是 当我尝试从文件名列表中读取多个 Rds 文件时 我收到错误 FUN X i 中的错误 从连接读取时出错 readRDS 不适用于列表吗 R
  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • 如何将两列 pandas Dataframe 移动并堆叠为一列?

    我有一个下面提到的数据框 ETHNIC SEX USUBJID 0 HISPANIC OR LATINO F 16 1 HISPANIC OR LATINO M 8 2 HISPANIC OR LATINO Total 24 3 NOT H
  • 从 R 中的 HTTPS 连接逐行读取

    当创建连接时open r 它允许逐行读取 这对于批量处理大数据流非常有用 例如这个脚本 https gist github com jeroenooms d33a24958d99bb969ac0通过一次读取 100 行来解析相当大的 gzi

随机推荐

  • 如何在 Visual Studio 中使用 mongodb-cxx-driver 设置项目

    我已经使用 Visual Studio 在 Windows 上成功构建了新的 libmongo cxx driver 但我无法理解如何在 VS 2015 中设置项目来链接到它 我希望能得到一些帮助 Vcpkg 可帮助您在 Windows 上
  • 如何处理用户提供的公式?

    我有一个字典 其中包含一组可通过 Web 应用程序使用的键值 我想处理用户提供的公式 例如 值1 值3 值4 100 获得公式计算的匹配值与字典中的值的最简单方法是什么 考虑这个例子 usr bin python values value1
  • jquery ajax 与 async false 挂起 Firefox

    我有一个像这样调用 ajax 的代码 ajax type POST url sandbox graphloader mock3 async false data calInput1 dates 0 calInput2 dates 1 suc
  • 需要从浏览器调用客户端DLL

    我收到客户的要求 当任何用户刷卡时 他们的详细信息应该自动在客户端的网页中捕获 然而 我们在 IE 中也做了同样的事情 即在 C 中创建 ActiveX 控件 卡服务提供商在客户端安装他们的 DLL 并且从 ActiveX 控件中 我们可以
  • 预期:没有这样的变量[关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我开始使用expect 我有一个简单的脚本 但我有一个问题 我想初始化一个第一个字符为 的变量 set mystring THIS IS MY STRING 所以我得到一个错误 因为exp
  • Heroku 上的“ModuleNotFoundError:没有名为“flask”的模块”

    我看到我收到 ModuleNotFoundError 没有名为 flask 的模块 这导致我的应用程序无法在 Heroku 上加载 我已经在虚拟环境和我的系统上安装了 Flask 但问题仍然存在 当我检查要求时 它说满意 这是我的日志 20
  • 在多个相同 ID 上使用 addEventListener

    我需要向我的转发 喜欢和不喜欢按钮添加一个事件侦听器 它们都具有相同的 ID 因此现在只有顶部推文的计数器增加 这是一个学校项目 所以我只能使用原始JS 这是小提琴的链接 https jsfiddle net 1sc7g5ko 这是我的 J
  • Drupal 6/jQuery Ajax 更新字段

    我位于同一站点的不同路径上 并且我需要允许用户更改他 她在不同位置写入的节点上的字段内容 我有 nodeid 和字段名称 以及 ids 等 np 我不认为这太难 但教程或解释会很棒 Thanks 编辑 谢谢 anschauung 的提问 所
  • 来自应用程序脚本的日历:每次需要授权时。仅适用于主日历

    在电子表格中 我有一个用于计算谷歌日历中的小时数的应用程序脚本 并将输出复制到电子表格中 几天前 一切都进展顺利 但今天 2013 年 7 月 1 日星期一 当我尝试运行该脚本时 每次都会收到消息 需要授权 http cl ly Q0bd
  • sails.js 获取文本/纯内容类型的 POST 有效负载

    我正在开发一个 sails js 基于express的node js框架 应用程序 进展顺利 但是 我无法解决这个细节 我需要从 Internet Explorer 8 和 9 跨域发送 POST 请求 为此 我被迫使用 xDomainRe
  • Hive 外部表中的最大列数

    我正在尝试在 Amazon 的 EMR 上设置 Hive 以从 DynamoDB 表中提取数据并将其转储到 S3 我已按照找到的说明进行操作here 并且我们的大多数桌子都取得了成功 但是 对于一个 DynamoDB 表 我收到错误 如下所
  • papaja 生成的 Rmarkdown 中使用 ragged2e 进行文本对齐

    我一直在尝试使用 ragged2e 在 papaja 生成的文档中使用此处提出的方法进行文本对齐 https stackoverflow com a 50042106 然而 当我尝试编织这个时 title My title shorttit
  • webgl 边框颜色着色器

    如何编写着色器来以纯色绘制多边形并以不同颜色绘制边框 基本上我有一个 3D 六边形地图 如果用户要求的话 我需要能够用黑色边框勾勒出每个六边形的轮廓 如果我可以控制边框宽度也很好 Thanks 在我的头顶上 一种方法是创建一个在中心有第七个
  • Flutter Firebase如何获取随机文档

    我正在尝试从 Firebase 获取一些随机帖子 但我无法获得随机文档 ID 有没有办法像这样从 Firebase 检索数据 getRandomData async QuerySnapshot snapshot await posts do
  • AWS Cognito - 通过谷歌登录,显示“继续访问 amazoncognito.com”

    Sign in via google shows continue to amazoncognito com Is there a way to change that to continue to mydomain com Thanks
  • 为什么在 KitKat 4.4.2 上 ACTION_OUTSIDE 每次都返回 0?

    我已经实现了一个大小为 1 的窗口并且想要捕获ACTION OUTSIDE event mWindowManager WindowManager getSystemService WINDOW SERVICE WindowManager L
  • NSSortdescriptor 对从 NSManagedContext 获取结果无效

    我正在尝试使用 NSSortdescriptor 使用指向 NSDate 值的键对 NSFetchRequest 结果进行排序 我的获取结果完全是随机的 没有明确的原因 我正在使用的 NSManagedObjectContext 是通过在
  • 无法解析符号“WebView”。 IntelliJ IDEA 中带有 Maven 的 JavaFX WebView [重复]

    这个问题在这里已经有答案了 事情很简单 我想创建一个支持 WevView 的 javafx 项目 以下是我遵循的步骤 打开intellij 新建项目 左侧 选择javafx 右侧也选择maven 完成 我在 pom xml 中添加了 jav
  • 在进行 url 编码时,std::regex_replace 对于字符“+”无法正常工作

    以下是代码片段 regexp replace 对于字符 无法正常工作 我不应该对字符使用特殊处理 但它应该可以正常工作 All headerfiles are available std string charToHex unsigned
  • 获取连续日值的总和

    我有一个大数据集 如下所示 Date rain code 2009 04 01 0 0 0 2009 04 02 0 0 0 2009 04 03 0 0 0 2009 04 04 0 7 1 2009 04 05 54 2 1 2009