Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据R中条件的最大值填充列_R_Max_Grouping_Fill - Fatal编程技术网

根据R中条件的最大值填充列

根据R中条件的最大值填充列,r,max,grouping,fill,R,Max,Grouping,Fill,我需要根据每组的最大值填充一个新列 所以我有 A B C 1 1 0 1 9 0 2 5 0 2 10 0 2 15 0 3 1 0 3 2 0 4 5 0 4 6 0 我需要为每个$A分组的$B中的每个最大值在$C中填充1 因此: 感谢您的帮助我们可以使用基本Rave来匹配每组中的最大值 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

我需要根据每组的最大值填充一个新列

所以我有

A B  C
1 1  0
1 9  0
2 5  0
2 10 0
2 15 0
3 1  0 
3 2  0
4 5  0
4 6  0
我需要为每个$A分组的$B中的每个最大值在$C中填充1

因此:


感谢您的帮助

我们可以使用基本R
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

我们还可以将其与最大值索引进行匹配

df$C <- with(df, ave(B, A, FUN = function(x) seq_along(x) == which.max(x)))

我们可以使用基本R
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

我们还可以将其与最大值索引进行匹配

df$C <- with(df, ave(B, A, FUN = function(x) seq_along(x) == which.max(x)))

dplyr
way,这将使不存在最大B
df%group\u by(A)%%>%的NA变异(C=case\u,当(B==max(B)~1))
。当没有最大B
df%groupu by(A)%%>%变异(当B==max(B)~1,B!=max(B)~0时C=case_))
dplyr
方式,这将在没有最大B
df%groupu by(A)%%>%变异(当(B==max(B)~1)时C=case_)的情况下留下NA
。如果没有最大值B
df%group_by(A)%>%mutate(C=case_,当(B==max(B)~1,B!=max(B)~0))时,这将保留零。
df %>%
  group_by(A) %>%
  mutate(C = +(row_number() == which.max(B)))