如何按R选择具有最小值并包含NAs的组 [英] How to select rows by group with the minimum value and containing NAs in R
本文介绍了如何按R选择具有最小值并包含NAs的组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是一个例子:
set.seed(123)
data<-data.frame(X=rep(letters[1:3], each=4),Y=sample(1:12,12),Z=sample(1:100, 12))
data[data==3]<-NA
我要实现的是选择 X的独特行
$
c
What I am to realize is to select the unique row of X
with minimum Y
by ignoring NA
s:
a 4 68
b 1 4
c 2 64
最好的方式是什么?
推荐答案
使用 data.table
包,这很简单:
library(data.table)
d <- data.table(data)
d[, min(Y, na.rm=TRUE), by=X]
您还可以使用 plyr
及其 ddply
function:
You can also use plyr
and its ddply
function:
library(plyr)
ddply(data, .(X), summarise, min(Y, na.rm=TRUE))
或使用base R:
aggregate(X ~ ., data=data, FUN=min)
在编辑时,我会使用 data.table
确定:
d[, .SD[which.min(Y)], by=X]
然而,是使用基本R或其他软件包的解决方案。
However, there are solutions using base R or other packages.
这篇关于如何按R选择具有最小值并包含NAs的组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文