我有一个数据集,其中每行表示一个订单,其中包含多个项目和每个项目的订购数量。我想知 prop 有最高数量的每行的项目名称和数量。
我的数据看起来像下面:
Item1 Qty1 Item2 Qty2 Item3 Qty3 Item4 Qty4
SUV1 4 SUV2 5 SUV3 5 SUV4 3
SUV4 7 PLV4 3 PNC5 6 NA NA
SUV3 5 PNC3 5 NA NA NA NA
当我尝试下面的代码时,我能够获得每行中具有最高值的列名,但不能获得项目名称:
##
library(tidyverse)
sodf_rank<- sodf2 %>%
rownames_to_column('id') %>% # creates an ID number
gather(dept, cnt, SKU1_Qty:SKU10_Qty) %>%
group_by(id) %>%
slice(which.max(cnt))
##
我希望得到如下结果:
RowID Item Qty
1 SUV2 5
2 SUV4 7
3 SUV3 5
2条答案
按热度按时间umuewwlo1#
或者在最后一行中使用
filter(Qty == max(Qty, na.rm = TRUE))
:以获得:
数据:
kq4fsx7k2#
在基R中,我们可以分离
"Item"
和"Qty"
列,使用max.col
从qty_cols
中获得最大值,并从item_cols
中获得相应的值。或者使用
apply
行方式的另一个选项