我的数据框看起来像这样
a <- c(10,NA,30,40,NA,60,70,80,90,90,80,90,10,40)
b <- c(l,k,l,l,k,l,l,l,k,k,l,l,k,l)
c <- c(1,1,1,2,2,2,2,2,3,3,3,4,4,4)
我想逐栏对数据进行分组&#39; b&#39;并且&#39; c&#39;然后替换&#39; a&#39;中的行值。列按每组的最大值。例如:&#39; a&#39;的第1和第2个列将替换为30.这是我的代码:
df%>%group_by(b, c)%>%mutate(a = max(a, na.rm = TRUE))
其他值由最大值替换,但不是NA。我不知道为什么mutate
函数通过inf
重写NA。以下是我的代码结果:
a <- c(30,inf,30,80,inf,80,80,80,90,90,90,90,10,90)
但我想这样:
a <- c(30,30,30,80,80,80,80,80,90,90,90,90,10,90)
答案 0 :(得分:2)
假设您的数据是:
np.power(discount, np.arange(len(rewards))
您必须运行以下代码:
Tuong_df <- data.frame(
c(10,NA,30,40,NA,60,70,80,90,90,80,90,10,40),
c("l","l","l","l","l","l","l","l","k","k","k","k","k","k"),
c(1,1,1,2,2,2,2,2,3,3,3,4,4,4))
names(Tuong_df) <- c("Var1","Var2","Var3")
无论如何,在不久的将来,如果你发布可重现的代码应该会更好。