如何根据因子水平对观测进行子集化

时间:2015-06-29 22:14:48

标签: r subset cut

我有一个数据框,需要根据一个变量(向量)的值将观察值分组到相同数量的组中。下面是为了说明,我曾经根据矢量A'来切割函数来创建因子。值。它创建三个级别,向量A的每个值都属于一个级别/组。现在,我如何根据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]

1 个答案:

答案 0 :(得分:0)

这是一个比你提供的更好的例子:

> 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

来自v的两个选择值,对应于级别"a",只需运行:

> v[X=="a"]
[1] 1 2 3 4