[英]How to subset observations based on factor level
I have a data frame and need to group the observations based on one variable(vector)'s value into equal number of groups. 我有一个数据框,需要根据一个变量(向量)的值将观察结果分组为相等数量的组。 Below is to illustrate, I used to cut function to create factor based on vector A' value.
下面是说明,我曾经使用过剪切函数来基于向量A'的值创建因子。 It create three levels, and each value of the vector A fall into one of the level/group.
它创建三个级别,向量A的每个值都属于级别/组之一。 Now how do I extract/refer to the vector A value based on the cut level of X. For instance, if I want to select observations of A fall into level 1:[1.2.33], how to do that?
现在,如何基于X的剪切级别提取/引用向量A的值。例如,如果要选择A的观察值落入级别1:[1.2.33],该怎么做?
> A<-1:5
> X<-cut(A,breaks=quantile(A,probs=c(0:3)/3),labels=1:3,include.lowest=TRUE)
> A
[1] 1 2 3 4 5
> X
[1] [1,2.33] [1,2.33] (2.33,3.67] (3.67,5] (3.67,5]
Levels: [1,2.33] (2.33,3.67] (3.67,5]
Here's a better example than what you provided: 这是比您提供的更好的示例:
> v <-1:10
> X <- cut(v, breaks=quantile(v,probs=c(0:3)/3), labels=letters[1:3], include.lowest=TRUE)
> X
[1] a a a a b b b c c c
Levels: a b c
Two select values from v
which correspond to level "a"
, just run: 从
v
中选择两个与"a"
级相对应的选择值,即可运行:
> v[X=="a"]
[1] 1 2 3 4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.