R中的多个条件使用特定变量

时间:2016-11-01 18:30:28

标签: r conditional

我有一个简单的问题。我有一个很大的df,如:

     Name  AGE  Order
       Anna  25    1
       Anna   28   2
       Peter 10    1
       Paul  15    1
       Mary  14    1
       John  8     1
       Charlie 24  2
       Robert  20  2

对于Just Order = 1,我需要过滤器AGE> = 10& AGE< = 15。所以输出文件必须是:

       Name  AGE  Order
        Anna   28   2
        Peter 10    1
        Paul  15    1
        Mary  14    1
        Charlie 24  2
        Robert  20  2

请问你能帮帮我吗?

1 个答案:

答案 0 :(得分:1)

我们可以使用矢量化ifelse

对于Order = 1检查AGE是否在10-15范围内,请按原样选择休息行。

df[ifelse(df$Order==1, df$AGE >= 10 & df$AGE <= 15, TRUE), ]

#    Name AGE Order
#2    Anna  28     2
#3   Peter  10     1
#4    Paul  15     1
#5    Mary  14     1
#7 Charlie  24     2
#8  Robert  20     2

我们也可以合并到:

subset(df, AGE >= 10 & AGE <= 15 | Order != 1)