【发布时间】:2021-04-23 02:27:15
【问题描述】:
对 R 来说还是很新的东西,我想在另一个变量为正/负时确定组内变量的最大值。具体来说,if l_diff<0,我想在pos_n<0的时候找到每组t的最大值。如果l_diff>0,我想在pos_p>0时找到每个组中t的最大值。示例数据:
l_diff <- c(-1,-1,-1,-1,-1,-1,1,1,1,1,1)
pos_n <- c(2,2,1,-4,-2,-2,2,1,-5,4,8)
pos_p <- c(3,4,-5,6,-7,2,-3,3,2,1,4)
t <- c(5,7,3,1,6,2,7,5,3,2,1)
group <- c(1,1,1,1,1,1,2,2,2,2,2)
db <- data.frame(cbind(l_diff,pos_n, pos_p, t, group))
期望的输出:
cmax<- c(6,6,6,6,6,6,5,5,5,5,5)
我尝试了以下方法:
db<-db %>%
group_by((group)) %>%
mutate(ifelse(l_diff<0, t1 = max(t[pos_n<0], ifelse(l_diff>0, t1 = max(t[pos_p >0])))))
但我收到以下错误:
错误:
mutate()输入..1有问题。 x 未使用的参数(t1 = max(t[pos_n 0, t1 = max(t[pos_p > 0])))) 我 输入..1是ifelse(...)。 i 组 1 中发生的错误:(组) = 1。
知道可能出了什么问题或有其他建议吗?
【问题讨论】:
-
t1 =应该在外面,你需要nooutput
标签: r if-statement max maxifs