我有一个分组变量("from")和值(“number”)的数据:
from number
1 1
1 1
2 1
2 2
3 2
3 2我希望对数据进行子集,并选择具有两个或多个唯一值的组。在我的数据中,只有第2组有多个不同的“数字”,因此这是所需的结果:
from number
2 1
2 2发布于 2015-07-27 09:11:35
几种可能性,这是我最喜欢的
library(data.table)
setDT(df)[, if(+var(number)) .SD, by = from]
# from number
# 1: 2 1
# 2: 2 2基本上,对于每个组,我们检查是否存在任何差异,如果是TRUE,则返回组值。
有了R基,我就会
df[as.logical(with(df, ave(number, from, FUN = var))), ]
# from number
# 3 2 1
# 4 2 2编辑:对于非数字数据,您可以尝试用于发展版本 of data.table的新uniqueN函数(或者使用length(unique(number)) > 1代替length(unique(number)) > 1)。
setDT(df)[, if(uniqueN(number) > 1) .SD, by = from]https://stackoverflow.com/questions/31649049
复制相似问题