繁体   English   中英

如何根据R中另一列中的最高数字计算新列?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM