【问题标题】:Identifying Row Index Number on the Bases of Max Value of Other Column within Group_by根据Group_by内其他列的最大值识别行索引号
【发布时间】:2018-01-23 02:50:04
【问题描述】:
 G= c("P52" ,"P52","P66 - PARK II","P66 - PARK II" ,"P66 - PARK II" ,"P66 - PARK II" ,"P82 V3","P82 V3","P82 V3","P52","P52","P66 - PARK II" ,"P66 - PARK II" ,"P82 V3","P66 - PARK II" ,"P66 - PARK II" ,"P82 V3","P82 V3"        ,"P88","P88","P88","P52","P82 V3","P66 - PARK II" ,"P66 - PARK II" ,"P82 V3","P52","P88","P88","P52" ,"P88","P82 V3","P88","P82 V3","P82 V3","P82 V3","P88","P88","P66 - PARK II" ,"P66 - PARK II" ,"P66 - PARK II" ,"P66 - PARK II" ,"P88","P66 - PARK II" ,"P88"           ,"P52","P52","P52","P52","P52","P52","P66 - PARK II" ,"P66 - PARK II" ,"P66 - PARK II","P88","P82 V3","P82 V3","P88","P88","P66 - PARK II" ,"P66 - PARK II" ,"P52","P52","P66 - PARK II" ,"P66 - PARK II" ,"P66 - PARK II" ,"P66 - PARK II" ,"P66 - PARK II" ,"P66 - PARK II" ,"P66 - PARK II" ,"P66 - PARK II" ,"P66 - PARK II","P66 - PARK II" ,"P82 V3","P66 - PARK II" ,"P82 V3","P88","P82 V3","P88","P88","P66 - PARK II","P82 V3","P82 V3" ,"P66 - PARK II" ,"P66 - PARK II" ,"P66 - PARK II" ,"P82 V3","P88","P88","P82 V3","P66 - PARK II" ,"P66 - PARK II" ,"P66 - PARK II" ,"P66 - PARK II" ,"P66 - PARK II" ,"P66 - PARK II" ,"P88"           ,"P66 - PARK II" ,"P66 - PARK II","P66 - PARK II" )
GA = runif(100, min=20, max=50)
GL = runif(100, min=20, max=50)

df=data.frame(G=G,GA=GA,GL=GL)
df$Sq <- seq(1:nrow(df))
library(MASS)
library(dplyr)
by_G<- group_by(df,G)
fg1 <- summarise(by_G,
                 Row_Index1=row_number(which.max(GA)),
                 Row_Index2=row_number(which.max(GL)),
                 n=n())  

上面是可重现的代码,我正在尝试提取列GA在组内具有最大值的行ID号。

【问题讨论】:

  • 由于GA 是一个分组变量,我不明白你为什么要在组中找到它的最大值。在每个组中,GA 是一个常量。
  • 我同意 Sven 的观点,通常你会这样做 fg1 %&gt;% slice(which.max(GA)),但在这种情况下,它只会给你每个组中的第一行,因为你是按 GA 分组的。
  • @SvenHohenstein 我的错误数据上传了,现在数据是按照问题陈述的,谢谢先生纠正我
  • @Axeman 我在这里尝试了which.max 的相同代码,我不想要拳头行,我想要 GL 在 G 组中具有最大值的行号
  • 你能提供一个表格来显示你想要得到的实际值吗?从描述上看不是很清楚。

标签: r group-by dplyr row-number


【解决方案1】:

假设 Sq 指的是数据集中的行 ID,以下将给出每个组 G 中具有最大 GA 的行 ID:

by_G %>% arrange(desc(GA)) %>% summarise(Sq = first(Sq))

# A tibble: 4 × 2
              G   Sq
         <fctr> <int>
1           P52    46
2 P66 - PARK II    13
3        P82 V3    90
4           P88    55

【讨论】:

    猜你喜欢
    • 2021-08-21
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    相关资源
    最近更新 更多