考虑示例数据
Zip_Code <- c(1,1,1,2,2,2,3,3,3,3,4,4)
Political_pref <- c('A','A','B','A','B','B','A','A','B','B','A','A')
income <- c(60,120,100,90,80,60,100,90,200,200,90,110)
df1 <- data.frame(Zip_Code, Political_pref, income)
我想group_by
每个$Zip_code
,并根据每个$income
因素获得最大$Political_pref
。
所需的输出是一个df,其中包含3个变量的8个字节。包含每个$Zip_code
(每个A和B)的2个障碍,其中收入最高
我正在使用dplyr
,但很高兴使用任何软件包(可能使用data.table
)
library(dplyr)
df2 <- df1 %>%
group_by(Zip_Code) %>%
filter(....)
答案 0 :(得分:1)
我们可以将slice
与which.max
library(dplyr)
df1 %>%
group_by(Zip_Code, Political_pref) %>%
slice(which.max(income))