我需要根据每组的最大值填充一个新列。
所以我有
A B C.1 1 01 9 02 5 02 10 02 15 03 1 03 2 04 5 04 6 0我需要为$ B中的每个最大值填充$ C …
我们可以使用基数R. ave 匹配每组中的最大值
ave
df$C <- +(with(df, B == ave(B, A, FUN = max))) df # A B C #1 1 1 0 #2 1 9 1 #3 2 5 0 #4 2 10 0 #5 2 15 1 #6 3 1 0 #7 3 2 1 #8 4 5 0 #9 4 6 1
同样的 dplyr 将会
dplyr
library(dplyr) df %>% group_by(A) %>% mutate(C = +(B == max(B)))
我们也可以将它与最大值的索引相匹配
df$C <- with(df, ave(B, A, FUN = function(x) seq_along(x) == which.max(x)))
和
df %>% group_by(A) %>% mutate(C = +(row_number() == which.max(B)))