如何根据 R 中另一列中的最高数字计算新列?
How to calculate a new column based on highest number in another column in R?
我有一个问题如何更好地解决问题。
我想根据另一列分组后另一列的最高编号定义一个新列。我确实找到了解决方案,请参见下文,但我认为有更好的方法可以做到这一点。
我希望每个 SN 的总测试编号是该特定 SN 的最高测试编号。
感谢您的帮助和建议!
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))
我有一个问题如何更好地解决问题。
我想根据另一列分组后另一列的最高编号定义一个新列。我确实找到了解决方案,请参见下文,但我认为有更好的方法可以做到这一点。
我希望每个 SN 的总测试编号是该特定 SN 的最高测试编号。
感谢您的帮助和建议!
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))