R、dplyr:n_distinct的累积版本

2024-01-11

我有一个数据框如下。它是按列排序的time.

Input -

df = data.frame(time = 1:20,
            grp = sort(rep(1:5,4)),
            var1 = rep(c('A','B'),10)
            )

head(df,10)
   time grp var1
1   1   1    A
2   2   1    B
3   3   1    A
4   4   1    B
5   5   2    A
6   6   2    B
7   7   2    A
8   8   2    B
9   9   3    A
10 10   3    B

我想创建另一个变量var2它计算不同的var1到目前为止的值,即直到那个点time对于每组grp。这与我使用时得到的有点不同n_distinct.

预期产出 -

   time grp var1 var2
1   1   1    A    1
2   2   1    B    2
3   3   1    A    2
4   4   1    B    2
5   5   2    A    1
6   6   2    B    2
7   7   2    A    2
8   8   2    B    2
9   9   3    A    1
10 10   3    B    2

我想创建一个函数说cum_n_distinct为此并将其用作 -

d_out = df %>%
  arrange(time) %>%
  group_by(grp) %>%
  mutate(var2 = cum_n_distinct(var1))

A dplyr解决方案的灵感来自@akrun的答案 -

这个逻辑基本上是设置每个唯一值的第一次出现var1 to 1并休息至0对于每组grp然后申请cumsum on it -

df = df %>%
  arrange(time) %>%
  group_by(grp,var1) %>%
  mutate(var_temp = ifelse(row_number()==1,1,0)) %>%
  group_by(grp) %>%
  mutate(var2 = cumsum(var_temp)) %>%
  select(-var_temp)

head(df,10)

Source: local data frame [10 x 4]
Groups: grp

   time grp var1 var2
1     1   1    A    1
2     2   1    B    2
3     3   1    A    2
4     4   1    B    2
5     5   2    A    1
6     6   2    B    2
7     7   2    A    2
8     8   2    B    2
9     9   3    A    1
10   10   3    B    2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R、dplyr:n_distinct的累积版本 的相关文章

  • 如何从 data.frame 中删除列?

    不是 你怎么 但更多的是 你怎么 如果有人给你一个包含 200 列的文件 并且你想将其减少到分析所需的少数列 你会如何做呢 一种解决方案是否比另一种解决方案更有优势 假设我们有一个包含列 col1 col2 到 col200 的数据框 如果
  • 删除第一次出现某个值后的行

    我有以下 df df lt data frame var1 c 1 2 2 3 4 5 5 6 7 8 9 var2 c a b c d e f g h i j k 我想在达到前 5 var1 后进行过滤 所以结果应该是 var1 var2
  • 根据一个或多个下拉选项创建具有不同类型线型的折线图

    在下面闪亮的应用程序中 我尝试根据侧边栏中的下拉选择创建点线图 我已成功在选择一个指标时创建折线图 但无法选择 2 个指标 为了x and y我想要一个solid线 对于x1 and y1我想要一个dashed线和对于x2 and y2一条
  • 使用从变量中选择的列名称逐行索引数据框

    考虑以下数据框 TEST lt structure list Value c NA NA NA NA NA NA NA NA NA NA NA NA Select structure c 2L 1L 3L 2L 2L 1L 1L 2L 1L
  • 在 R 中,如何获得某些向量值的所有可能组合?

    背景 我有一个需要一些参数的函数 我想要获得所有可能的参数组合的函数结果 一个简化的例子 f lt function x y return paste x y sep colors c red green blue days c Monda
  • 如何检查向量是否是单个 NA 值,没有长度警告且没有抑制

    我有一个功能NA作为默认值 但如果没有NA应该是一个不限于大小 1 的字符向量 我有一个检查来验证这些 但是is na当向量是字符向量时产生标准警告length大于1 so function lt function x NA if is n
  • 计算横截面积作为高度的函数

    我试图弄清楚如何计算不同水位的河流横截面的充满水的面积 对于横截面 我有 5 m 宽河流上每 25 cm 的深度 并且可以根据之前很好回答的问题来计算面积计算不同高度的横截面积 https stackoverflow com questio
  • data.table 相当于 dplyr::filter_at

    考虑数据 library data table library magrittr vec1 lt c Iron Copper vec2 lt c Defective Passed Error set seed 123 a1 lt sampl
  • 写入抓取数据的 csv 文件时如何拆分项目名称

    我有兴趣使用 R 从网上抓取的数据创建 csv 或类似的 Excel 兼容文件 到目前为止 我通过执行以下操作来存储数据 require textreadr spiegel lt read html http www spiegel de
  • 计算网格中物种的出现次数

    我有大约500 000点R美国各地候鸟物种的出现数据 我试图在这些点上覆盖网格 然后计算每个网格中出现的次数 统计完计数后 我想将它们引用到网格单元 ID 在 R 中 我使用了over 函数只获取范围图中的点 这是一个形状文件 Read i
  • 使用 r 以周为单位对数据进行分组

    I have a CVS file which has data for different countries at different weeks of this year I want to create a summary data
  • 与heroku配合使用的统计引擎

    我有一个 Heroku Rails 应用程序 需要处理一些重要的数字 并且我需要使用像 R 这样的统计库 更糟糕的是 MatLab 我正在寻找以下任何问题的答案 是否有不需要二进制文件的功能齐全的统计包 GEM 是否可以将 R 二进制文件作
  • 将一长行带空格的数据导入R中

    这个问题是我上一个问题的后续问题 将一长行数据导入到 R 中 https stackoverflow com questions 8389913 我有一个由单行文本组成的大型数据文件 格式类似于 Cat 14 15 Horse 16 我最终
  • R:igraph、社区检测、edge. Betweenness 方法、统计/列出每个社区的成员?

    我有一个相对较大的图表 其中顶点 524 边 1125 是现实世界的交易 边是有向的并且具有权重 包含是可选的 我正在尝试调查图中的各个社区 并且本质上需要一种方法 计算所有可能的社区 计算最佳社区数量 返回每个 最佳 社区的成员 成员数量
  • do.call 的 envir 选项如何工作?

    的文档do call states If quote is FALSE 默认值 然后对参数进行求值 在调用环境中 而不是在envir 这句话向我暗示 当quote FALSE 指定envir没有什么区别 然而 事实并非如此 事实上我遇到过需
  • 有没有一种明智的方法可以在 R 中执行诸如文档字符串之类的操作?

    这不仅仅是一个编码风格问题 如果您了解 python 我认为 Ruby 也有类似的东西 您可以在函数中拥有文档字符串 这样您就可以通过发出 help 命令轻松获取该字符串 例如 def something t None Do somethi
  • 缩放geom_密度以将geom_bar与y上的百分比相匹配

    因为我对数学感到困惑上次我尝试问这个问题 https stackoverflow com questions 32412805 ggplot2 histogram with density curve that sums to 1 这是另一
  • 了解日期并使用 R 中的 ggplot2 绘制直方图

    主要问题 当尝试使用 ggplot2 制作直方图时 我无法理解为什么日期 标签和中断的处理无法像我在 R 中预期的那样工作 我在找 我的约会频率的直方图 刻度线位于匹配条下方的中心 日期标签在 Y b format 适当的限制 最小化网格空
  • 当我添加形状时,分组哑铃图变得不稳定

    我有以下数据显示白人与黑人在各个领域的一致性百分比 我想创建一个分组哑铃图 其中国家值和州值彼此相邻 以便于比较 Domain c A B C D E F G A B C D E F G A B C D E F G A B C D E F
  • 使用 alpha 通道叠加两个 ggplot2 stat_密度2d 图

    我想叠加两个ggplot2使用 alpha 通道进行绘图 结果图像显示两个数据集 这是我的测试数据 data read table text P1 1 0 4 nP2 0 0 2 nP3 2 1 8 nP4 2 2 6 nP5 0 5 2

随机推荐

  • 在 ECMAScript 中检查空字符串时,为什么应该使用 string.length == 0 而不是 string == "" ?

    我当前项目中的大多数开发人员都使用一种 对我来说 奇怪的方式来检查 ECMAScript 中的空字符串 if theString length 0 string is empty 我通常会这样写 if theString string is
  • 如何屏蔽IE8及以下版本?

    我们刚刚完成 Web 应用程序的开发 我们想要阻止 Internet Explorer 8 及以下版本 实现这一目标的最佳方法是什么 我找到了一种阻止 IE6 的方法 但是教程 http css tricks com ie 6 blocke
  • 如何左对齐 pandas `to_string()` 中的列值?

    我想将 pandas 数据框保存到文件中to string 但想要左对齐列值 和to string justify left 只有列标签左对齐 例如与 pd DataFrame col1 123 1234 col2 1 444441234
  • WooCommerce:检查产品是否缺货且不允许缺货

    如何检查产品是否缺货 库存数量为 0 并且不允许延期交货 由于某种原因 以下代码不起作用 add action woocommerce before add to cart button show stock single function
  • 如何将元数据添加到 Firebase 身份验证

    我需要在使用 firebase 身份验证的 google 登录期间传递自定义值 device id 随后通过侦听身份验证事件触发器从云函数获取该值 然后将该值添加到 Firestore 据我所知 您可以将值作为 http 触发器的查询参数传
  • Microsoft Edge 中的像素化图像缩小尺寸

    我最近为我的网站制作了一个分辨率为 400x400 的徽标 在我测试过的任何其他浏览器中 它可以缩小到 40x40 但在 Edge 中表现得很奇怪 每次刷新页面时 它都会在瞬间正确呈现 然后在页面完成加载后变为丑陋的像素化外观 页面完全加载
  • 如何使用 matplotlib 自定义甘特图并在图表上显示指示当前时间的垂直线?

    这是我的 Python 代码 它基本上绘制了甘特图 import pandas as pd import random from datetime import datetime import matplotlib dates as mda
  • 使用 Swift 结构和 id 时,SwiftUI 让 ScrollViewReader 滚动

    我有几个简单的 Swift UI 屏幕 全部运行在一个结构中 该结构定义了小部件的视图 名称及其进入的顺序 我试图创建一个水平列表 其中每个按钮在按下时都会在滚动视图中居中 这就是我想做的 我遇到的问题是我无法让 ScrollViewRea
  • Mac 上的 Podman 在运行 podman machine init 时抛出错误

    使用brew安装了podman brew install podman 尝试使用启动VMpodman machine init但收到以下错误 Extracting compressed file Error cannot overwrite
  • Liferay 日志记录级别

    有没有办法设置Liferay的global日志记录级别 我知道它是服务器管理中的控制台 但我想将全局级别设置为包级别 Thanks 由于 log4j 的配置方式 任何全局设置都可以被包级别设置覆盖 您可以删除任何配置单独的包 如果有 然后设
  • 从文件上传读取 url 时图像自动旋转(当它是大图像时)?

    下面这段代码 function readURL input if input files input files 0 var reader new FileReader reader onload function e img attr s
  • ASP.Net @符号

    我正在尝试遵循 ASP Net 的一些教程 但在我的一生中 我只是不明白 当符号位于变量之前时 它会执行此操作 我认为这只是会话变量或 request form 的快捷方式 但我在几个地方尝试过 但没有任何运气 当我将它随机放在某个地方时
  • IntelliJ、Java 格式化:强制空块位于一行

    是否可以告诉 IntelliJ 在格式化 Java 文件时将空块放在一行上 我想要这个 Override public void onClickPositive int tag Object payload 自动变成这样 Override
  • 添加/删除视觉/逻辑子项时收到通知

    我目前正在寻找一种在将孩子添加到视觉或逻辑孩子中时收到通知的方法 我知道 Visual OnVisualChildrenChanged 方法 但它不适用于我 因为我不能总是继承和重写此函数 我正在寻找一个活动 那么 有没有办法在添加子项时通
  • 删除/隐藏 Total_sales WooCommerce 自定义字段

    有没有办法去除total sales显示时自定义字段the meta对于一个产品 我可以将编辑器中的条目更改为其他名称和值 但它会神奇地再次出现并且不会被删除 我会为此使用 the meta key 过滤器 您有几种选择 当然您可以将它们组
  • 检查变量是否在 SASS 中定义

    正如标题所说 我正在尝试检查 SASS 中是否定义了变量 如果这有什么不同的话 我正在使用指南针 我发现 Ruby 的等价物是 defined foo 在黑暗中尝试了一下 但它只是给了我错误 defined expected was 我找到
  • 调整 tiff 大小并保持透明度和 c#

    我正在尝试调整 RGB 8 位 Tif 的大小并保持其在 c 中的透明度 我尝试过以下代码 using Image thumbnail new Bitmap 1500 1500 using Bitmap source new Bitmap
  • PHP 对象父/子递归

    我有一个父子面向对象关系 父对象有许多子对象 每个子对象都通过引用知道它的父对象 父母也可以是孩子 基本上它是一棵树 当我做一个var dump 在根对象上它说 父 gt 递归很多次 生成的描述会很长 我想知道我是否做错了什么 如果是 我对
  • 如何使用反射通过字符串名称调用API?

    如何通过字符串名称调用另一个AppService中的API 示例 我在 MyAppService 中有一个 API 如下所示 public class MyAppService MyAppServiceBase IMyAppService
  • R、dplyr:n_distinct的累积版本

    我有一个数据框如下 它是按列排序的time Input df data frame time 1 20 grp sort rep 1 5 4 var1 rep c A B 10 head df 10 time grp var1 1 1 1