我有数据集new,变量a b和c
a b c
hdjfh 434 876
sdfdsf 34 98
gfdsdfdsf 534 672
rsdfdsf 65 87
gsdfdsf 67 54
vbvnn 98 09
gkhjgfk 100 768
rknfg 78 3546
我想创建两个数据集,使得数据集new1需要满足条件b> 110或c> 110。第二个数据集new2将具有条件b> 110或c> 110
不满足的记录答案 0 :(得分:2)
如果要将两个数据集分配给新变量,可以执行以下操作:
df <- data.frame(a=c('hdjfh','sdfdsf','gfdsdfdsf','rsdfdsf','gsdfdsf','vbvnn','gkhjgfk','rknfg'),b=c(434L,34L,534L,65L,67L,98L,100L,78L),c=c(876L,98L,672L,87L,54L,9L,768L,3546L),stringsAsFactors=F);
cond <- df$b>110|df$c>110;
new1 <- df[cond,];
new2 <- df[!cond,];
new1;
## a b c
## 1 hdjfh 434 876
## 3 gfdsdfdsf 534 672
## 7 gkhjgfk 100 768
## 8 rknfg 78 3546
new2;
## a b c
## 2 sdfdsf 34 98
## 4 rsdfdsf 65 87
## 5 gsdfdsf 67 54
## 6 vbvnn 98 9
另一种选择是使用split()
来获取列表:
split(df,df$b>110|df$c>110);
## $`FALSE`
## a b c
## 2 sdfdsf 34 98
## 4 rsdfdsf 65 87
## 5 gsdfdsf 67 54
## 6 vbvnn 98 9
##
## $`TRUE`
## a b c
## 1 hdjfh 434 876
## 3 gfdsdfdsf 534 672
## 7 gkhjgfk 100 768
## 8 rknfg 78 3546
##