2016-06-19 19 views
-1

I-Datensatz haben neue mit Variable a b und c-Datensatz erstellen, basierend auf Zustand

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 

i zwei datatsets so erstellen möchten, dass Daten-Set new1 benötigen Bedingung b> 110 oder c> 110 zu erfüllen. zweiten Datensatz new2 werden Datensätze, die von der Bedingung b> 110 oder c> 110

Antwort

2

nicht zufrieden sind Wenn Sie die beiden Datensätze zu neuen Variablen zuweisen möchten, können Sie dies tun:

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 

eine weitere Option ist split() zu verwenden, um eine Liste zu erhalten:

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 
## 
Verwandte Themen