在下表中,如何找到每行中的两个最大值,然后将这些值相加?
我在RStudio中有一个附加表的副本。是否可以使用一行代码在每行上添加两个最高的数字,以便将其应用于更大的数据集?
您可以进行按行计算,对指定列中的值进行排序,然后将最高的两个值相加:
library(dplyr)
df <- data.frame(Mon = c(12,15,42,43,56,73,23),
Tues = c(15,14,12,75,98,79,68),
Wed = c(13,42,35,64,35,95,56),
Thur = c(23,46,32,94,78,68,35),
Friday = c(25,23,64,35,27,54,32))
df %>%
rowwise() %>%
mutate(two_max = sum(sort(c(Mon, Tues, Wed, Thur, Friday), decreasing = TRUE)[1:2])) %>%
ungroup()
如果您不想手动指定列名,也可以一次选择所有数字列:
df %>%
rowwise() %>%
mutate(two_max = sum(sort(c_across(where(is.numeric)), decreasing = TRUE)[1:2])) %>%
ungroup()
两种策略都能得出结果:
# A tibble: 7 x 6
Mon Tues Wed Thur Friday two_max
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 12 15 13 23 25 48
2 15 14 42 46 23 88
3 42 12 35 32 64 106
4 43 75 64 94 35 169
5 56 98 35 78 27 176
6 73 79 95 68 54 174
7 23 68 56 35 32 124
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句