[英]How to calculate a new column based on highest number in another column in R?
我有一个问题,如何更好地解决问题。
我想根据另一列分组后的另一列的最高数量定义一个新列。 我确实找到了一个解决方案,见下文,但我认为有更好的方法来做到这一点。
我希望每个 SN 的 totaltestno 是该特定 SN 的最高 testno。
感谢您的任何帮助和建议!
sets <- data.frame(SN=c(1234, 1234, 2345, 3456, 7890, 7890, 7890, 1234, 1234, 2345, 3456, 7890, 7890, 7890), a= c(1,2, 3, 4, 1,2, 1,2,1,2,3,4,5,6) ,testno=
c(1,1,2,2,1,1,1,1,1,1,2,2,3,3))
sets
sets <- sets %>% group_by(SN) %>%
arrange(desc(testno), .by_group = TRUE)
setshighestno <- sets %>% distinct(SN, .keep_all = TRUE)
setshighestno$totaltestno <- setshighestno$testno
setshighestno$testno <- NULL
setshighestno$a <- NULL
setshighestno
newsets <- merge(x = sets, y=setshighestno, by = "SN")
newsets
我们可以用
library(dplyr)
newsets %>%
group_by(SN) %>%
mutate(totaltestno2 = max(testno))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.