我有一个带有字符串和数字的df.我需要按组筛选最大值,不包括年份(日期类型).
我是这么做的:
test
type Process RegionName Time Level a b c d e f g h i j k l m n o p q r s t u v w
a1 XYZ_1 ABC 2010 fixed 0 0 0 0 0 0 1 957 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
a1 XYZ_2 ABC 2010 fixed 0 0 0 0 0 0 0 61 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0
a1 XYZ_3 ABC 2010 fixed 0 0 0 0 0 0 0 695 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0
a1 XYZ_4 ABC 2010 fixed 0 0 0 0 0 0 0 525 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0
b1 XYZ_5 ABC 2010 fixed 0 0 0 0 0 0 10551 1168053 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
b1 XYZ_6 ABC 2010 fixed 0 0 0 0 0 0 0 7571 0 0 0 30 0 0 0 0 0 0 0 0 0 0 0
b1 XYZ_7 ABC 2010 fixed 0 0 0 0 0 0 0 10883 0 0 0 0 0 51 0 0 0 0 0 0 0 0 0
b1 XYZ_8 ABC 2010 fixed 0 0 0 0 0 0 0 40453 0 0 0 0 0 0 0 196 0 0 0 0 0 0 0
b1 XYZ_9 ABC 2010 fixed 0 0 0 0 0 0 0 24464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 53
c1 XYZ_10 ABC 2010 fixed 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0
c1 XYZ_11 ABC 2010 fixed 0 0 0 0 0 0 0 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d1 XYZ_12 ABC 2010 fixed 0 0 0 0 0 0 2 1616 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
d1 XYZ_13 ABC 2010 fixed 0 0 0 0 0 0 0 762 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0
d1 XYZ_14 ABC 2010 fixed 0 0 0 0 0 0 0 1002 0 0 0 12 0 0 0 0 0 0 0 0 0 0 0
d1 XYZ_15 ABC 2010 fixed 0 0 0 0 0 0 0 556 0 0 0 0 0 7 0 0 0 0 0 0 0 0 0
d1 XYZ_16 ABC 2010 fixed 0 0 0 0 0 0 0 961647 0 0 0 0 0 0 0 4661 0 0 0 0 0 0 0
d1 XYZ_17 ABC 2010 fixed 0 0 0 0 0 0 0 1381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
max_test <- test %>%
group_by(type) %>%
slice(which.max(a:w))
max_test
type Process RegionName Time Level a b c d e f g h i j k
a1 XYZ_1 ABC 2010 fixed 0 0 0 0 0 0 1 957 0 0 0
b1 XYZ_5 ABC 2010 fixed 0 0 0 0 0 0 10551 1168053 0 0 0
c1 XYZ_10 ABC 2010 fixed 0 0 0 0 0 0 0 0 0 0 0
d1 XYZ_12 ABC 2010 fixed 0 0 0 0 0 0 2 1616 0 0 0
A1和b1是我所期望的.然而,c1和d1并非如此.
对于C1,我预期为XYZ_11,因为129&>16
对于d1,我预计XYZ_16,因为961647&>1616
你知道我做错了什么吗?
注意:我没有在代码中引入避免时间值.我只做max(a:w).那么,A1可能会认为2010年而不是957年是最高值?