R 分组,以查找每个组的最大值,然后统计每年具有最大值的组
我试图根据变量的最大值对变量进行分组,然后计算在某个时间段内具有最大值的组的数量 数据集如下所示: 年 汽车 价值 1991 A. 21 1992 A. 19 1993 A. 20 1992 B 42 1993 B 17 1991 C 31 1992 C 50 1993 C 23R 分组,以查找每个组的最大值,然后统计每年具有最大值的组,r,dplyr,group-by,R,Dplyr,Group By,我试图根据变量的最大值对变量进行分组,然后计算在某个时间段内具有最大值的组的数量 数据集如下所示: 年 汽车 价值 1991 A. 21 1992 A. 19 1993 A. 20 1992 B 42 1993 B 17 1991 C 31 1992 C 50 1993 C 23 示例输出与示例数据不匹配,但这可能就是您要查找的 首先,按Car对_进行分组,并确定该特定汽车的最大值。然后,您可以按年份对车辆进行分组,并使用n\u distinct计算唯一车辆的数量,其中值等于最大值 librar
示例输出与示例数据不匹配,但这可能就是您要查找的 首先,
按
Car对_进行分组,并确定该特定汽车的最大值。然后,您可以按
年份对车辆进行分组,并使用n\u distinct
计算唯一车辆的数量,其中值
等于最大值
library(dplyr)
df %>%
group_by(Car) %>%
mutate(Max_Value = max(Value)) %>%
group_by(Year) %>%
summarise(Count = n_distinct(Car[Value == Max_Value]))
输出
Year Count
<int> <int>
1 1991 0
2 1992 3
3 1993 0
年份计数
1 1991 0
2 1992 3
3 1993 0
示例输出与示例数据不匹配,但这可能就是您要查找的内容
首先,按
Car对_进行分组,并确定该特定汽车的最大值。然后,您可以按
年份对车辆进行分组,并使用n\u distinct
计算唯一车辆的数量,其中值
等于最大值
library(dplyr)
df %>%
group_by(Car) %>%
mutate(Max_Value = max(Value)) %>%
group_by(Year) %>%
summarise(Count = n_distinct(Car[Value == Max_Value]))
输出
Year Count
<int> <int>
1 1991 0
2 1992 3
3 1993 0
年份计数
1 1991 0
2 1992 3
3 1993 0
非常接近本的密码!不带n\u distinct
df1 <- df %>%
group_by(Car) %>%
mutate(mx = max(Value)) %>%
ungroup() %>%
group_by(Year) %>%
summarise(count=sum(Value >= mx))
df1%
组别(汽车)%>%
变异(mx=最大值))%>%
解组()%>%
组别(年份)%>%
总结(计数=总和(值>=mx))
非常接近本的密码!不带
n\u distinct
df1 <- df %>%
group_by(Car) %>%
mutate(mx = max(Value)) %>%
ungroup() %>%
group_by(Year) %>%
summarise(count=sum(Value >= mx))
df1%
组别(汽车)%>%
变异(mx=最大值))%>%
解组()%>%
组别(年份)%>%
总结(计数=总和(值>=mx))
另一种
dplyr
方式:
在每个年和计数中仅保留最大值
行
library(dplyr)
df %>%
mutate(Year = factor(Year)) %>%
group_by(Car) %>%
slice(which.max(Value)) %>%
ungroup %>%
count(Year, .drop = FALSE)
# Year n
#* <fct> <int>
#1 1991 0
#2 1992 3
#3 1993 0
库(dplyr)
df%>%
突变(年=因子(年))%>%
组别(汽车)%>%
切片(哪个.max(值))%>%
解组%>%
计数(年份,.drop=FALSE)
#年
#*
#1 1991 0
#2 1992 3
#3 1993 0
另一种dplyr
方式:
在每个年和计数中仅保留最大值
行
library(dplyr)
df %>%
mutate(Year = factor(Year)) %>%
group_by(Car) %>%
slice(which.max(Value)) %>%
ungroup %>%
count(Year, .drop = FALSE)
# Year n
#* <fct> <int>
#1 1991 0
#2 1992 3
#3 1993 0
库(dplyr)
df%>%
突变(年=因子(年))%>%
组别(汽车)%>%
切片(哪个.max(值))%>%
解组%>%
计数(年份,.drop=FALSE)
#年
#*
#1 1991 0
#2 1992 3
#3 1993 0
在您的样本数据集中,所有汽车在1992年都有其最大值,但预期结果并未反映这一点。请你澄清一下,谢谢。另一个问题:如果一辆车在一年多的时间内达到最大值,例如,a车在1991年和1992年的值为21,那么预期的答案是什么?@Uwe:好问题!在这种情况下,我希望计算这两个年份。在您的样本数据集中,所有汽车在1992年都有其最大值,但预期结果并不反映这一点。请你澄清一下,谢谢。另一个问题:如果一辆车在一年多的时间内达到最大值,例如,a车在1991年和1992年的值为21,那么预期的答案是什么?@Uwe:好问题!在这种情况下,我希望这两个年份都计算在内。