R中的条件子集

时间:2011-08-19 09:30:25

标签: r

我有一个数据帧“df”。我想从条件语句创建两个子集(a& b),比如变量“x”,其值大于10.在SAS中,这将是这样的: data a, b; set df; if x>10 then output a; else output b。 有没有办法在R?中做到这一点?

2 个答案:

答案 0 :(得分:5)

您可以使用split

subs <- split(df,df$x>10)
a <- subs[[1]]
b <- subs[[2]]

split的第二个参数需要一个因子,因此您可以使用更复杂的语句来提供更多分割。

答案 1 :(得分:1)

假设DF是您的数据框,x是data.frame中的变量:

sel <- ( x > 10 )
a <- DF[ sel, ]
b <- DF[ !sel, ]