当前位置: 首页 > 知识库问答 >
问题:

按数据帧中的组计算唯一/不同值

相野
2023-03-14

假设我有以下数据帧:

> myvec
    name order_no
1    Amy       12
2   Jack       14
3   Jack       16
4   Dave       11
5    Amy       12
6   Jack       16
7    Tom       19
8  Larry       22
9    Tom       19
10  Dave       11
11  Jack       17
12   Tom       20
13   Amy       23
14  Jack       16

我想计算每个名称的不同order_no值的数量。它应产生以下结果:

name    number_of_distinct_orders
Amy     2
Jack    3
Dave    1
Tom     2
Larry   1

我该怎么做?

共有3个答案

呼延凌
2023-03-14

这是一个包含函数聚合的简单解决方案:

aggregate(order_no ~ name, myvec, function(x) length(unique(x)))
秋阳荣
2023-03-14

在< code>dplyr中,您可以使用< code>n_distinct来“计算唯一值的数量”:

library(dplyr)
myvec %>%
  group_by(name) %>%
  summarise(n_distinct(order_no))
邢飞鸿
2023-03-14

A<code>数据。表方法

library(data.table)
DT <- data.table(myvec)

DT[, .(number_of_distinct_orders = length(unique(order_no))), by = name]

数据表

DT[, .(number_of_distinct_orders = uniqueN(order_no)), by = name]
 类似资料:
  • 下面有一段代码,它创建了数据框中每列中缺失值的汇总表。我希望我可以构建一个类似的表来计算唯一的值,但是DataFrame没有唯一的()方法,只有每一列是独立的。 (资料来源:https://stackoverflow.com/a/39734251/7044473) 如何为唯一值实现相同的功能?

  • 我知道这不是一个人应该在这里做的事情,尽管我不知道否则我怎么能问这个问题。 我的目标是统计有多少行具有相同的第一预测值(购买、维护等),但评级不同。 我的尝试是通过第一列来计算,然后计算我得到的不同评分,这将是非常棒的。 一个重要的假设是,如果两行相同,则它们已被预先擦除。因此,可以找到不同等级的行,但没有相同的行。 在我的示例中,第1行和第3行是相同的,因此其中一行被擦除,没有问题。然而,对于其

  • 问题内容: 假设我有一个包含3列的数据框:日期,股票行情,值(无索引,至少从此开始)。我有很多约会,很多股票,但是每个元组都是唯一的。(但是很显然,同一日期将显示在多行中,因为它将在多个行情中出现,而同一行情显示将在多行中显示,因为它将存在许多日期。) 最初,我的行以特定顺序排列,但没有按任何列进行排序。 我想计算每个股票报价的第一个差异(每日变化)(按日期排序),并将其放在数据框中的新列中。在这

  • 我试图在火花数据帧中显示几个不同列的不同计数,以及对第一列进行分组后的记录计数。 所以如果我有col1、col2和col3,我想按col1分组,然后显示col2的不同计数和col3的不同计数。然后,我想在col1的同一组之后显示记录计数。最后,在一个agg语句中完成这一切…有什么想法吗?

  • 问题内容: 如果我有三列: 我想计算一下表格中有多少唯一的电子邮件,我该怎么做? 如下语句: 给我总数。 我试过了 但这似乎并没有给我期望的数字。 问题答案: 采用 提供唯一的电子邮件ID,然后简单地对其进行计数。

  • 我解决了以下提供的协同问题。 给出了一个整数M和一个由N个非负整数组成的非空数组A。数组A中的所有整数都小于或等于M。 一对整数(P, Q),使得0≤P≤Q 例如,考虑整数M=6和数组A,这样: 目标是计算不同切片的数量。 编写函数: 类解决方案{公共int解决方案(int M,int[]A);} 如果给定一个整数M和一个由N个整数组成的非空数组a,则返回不同的片数。 如果不同切片的数量大于1,0