我理解问题的措辞不清楚,但它很简单,希望图像能传达比文字更多的信息。我需要一个新列(图像中的新列),它从列 B 中获取一个值,该列对应于列 N(按组)中的最大值,在这种情况下为 A。
最好是 tidyverse 解决方案,因为我正在传递一个长命令。
df <- structure(list(A = c("a", "a", "a", "a", "a", "b", "b", "b"),
B = c("b", "c", "d", "e", "f", "c", "d", "e"), N = c(1L,
2L, 3L, 4L, 5L, 5L, 4L, 3L), New.Col = c("f", "f", "f", "f",
"f", "c", "c", "c")), class = "data.frame", row.names = c(NA,
-8L))
最佳答案
使用data.table
library(data.table)
setDT(df)[, new_col := B[which.max(N)], A]
> df
A B N New.Col new_col
1: a b 1 f f
2: a c 2 f f
3: a d 3 f f
4: a e 4 f f
5: a f 5 f f
6: b c 5 c c
7: b d 4 c c
8: b e 3 c c
关于r - 按类别获取最大值作为 R 中的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68799130/