首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何按组获得变量的所有最小值?

如何按组获得变量的所有最小值?
EN

Stack Overflow用户
提问于 2015-12-23 15:32:39
回答 2查看 115关注 0票数 3

我有一个数据框架:

代码语言:javascript
运行
复制
df<-data.frame(P = c("A","A","A", "B","B","B", "C", "C", "C"), 
               index = c("ind1","ind2","ind3","ind1","ind2","ind3","ind1","ind2","ind3"),
               var = c(2,1,1,8,5,4,2,8,6))

我想得到所有的最小valueS of var及其关联的P值的index。我可以这么做:

代码语言:javascript
运行
复制
DT <- data.table(df)
DT[  ,.SD[which.min(var)], by = P]

,它只给出var的一个最小值(第一个),由P提供。

P index var 1: A ind2 1 2: B ind3 4 3: C ind1 2

我想:

P index var 1: A ind2 1 2: A ind3 1 2: B ind3 4 3: C ind1 2

想法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-23 15:38:05

which.min的帮助页面中,您将注意到它是这样写的:

确定数字(或逻辑)向量的(第一)最小或最大索引的位置。

如果您想要所有与最小值匹配的值,则应该尝试使用==。因此,继续您的方法,尝试:

代码语言:javascript
运行
复制
DT[, .SD[var == min(var)], by = P]
##    P index var
## 1: A  ind2   1
## 2: A  ind3   1
## 3: B  ind3   4
## 4: C  ind1   2
票数 4
EN

Stack Overflow用户

发布于 2015-12-23 15:42:57

使用dplyr,您可以使用以下内容之一:

代码语言:javascript
运行
复制
library(dplyr)
DT %>% group_by(P) %>% filter(var == min(var))  # or %in% instead of ==
#Source: local data table [4 x 3]
#Groups: P
#
#       P  index   var
#  (fctr) (fctr) (dbl)
#1      A   ind2     1
#2      A   ind3     1
#3      B   ind3     4
#4      C   ind1     2

代码语言:javascript
运行
复制
DT %>% group_by(P) %>% top_n(1, desc(var)) # top_n() returns multiple rows in case of ties
#Source: local data table [4 x 3]
#Groups: P
#
#       P  index   var
#  (fctr) (fctr) (dbl)
#1      A   ind2     1
#2      A   ind3     1
#3      B   ind3     4
#4      C   ind1     2

代码语言:javascript
运行
复制
DT %>% group_by(P) %>% filter(min_rank(var) == 1)
#Source: local data table [4 x 3]
#Groups: P
#
#       P  index   var
#  (fctr) (fctr) (dbl)
#1      A   ind2     1
#2      A   ind3     1
#3      B   ind3     4
#4      C   ind1     2
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34438938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档