如何根据R中另一列中的最大值计算新列?

如何根据R中另一列中的最大值计算新列?,r,calculated-columns,R,Calculated Columns,我有一个问题,如何更好地解决问题 我想根据另一列分组后另一列的最大数目定义一个新列。我确实找到了一个解决方案,见下文,但我认为有更好的方法 我希望每个序列号的totaltestno是该特定序列号的最高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,

我有一个问题,如何更好地解决问题

我想根据另一列分组后另一列的最大数目定义一个新列。我确实找到了一个解决方案,见下文,但我认为有更好的方法

我希望每个序列号的totaltestno是该特定序列号的最高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
set%
排列(desc(testno),.by_group=TRUE)
SetHighestNo%不同(序号,.keep_all=TRUE)
sethighestno$totaltestno我们可以使用

library(dplyr)
newsets %>%
    group_by(SN) %>% 
    mutate(totaltestno2 = max(testno))

你只是在寻找正常的分组吗?
transform(set,totaltestno=ave(testno,SN,FUN=max))
解决了这个问题吗?是的,这解决了我的问题,谢谢!