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