-2

I have a database with 3 variables:

Var1 Var2 var3

A 10 20

B 2 20

C -3 20

D 1 20

I want a general command that drop (omit) any observation if -1

Any help?

1 Answers1

0

So a row represent an observation? Or for every variable seperately?

Then, for var2 you could do

Var2 = Var2[-which(Var2==-1)]

Same for the others of course.

If you want to do it on the entire database:

> var1 = c("A","B","C","D")
> var2 = c(10,2,-3,1)
> var3 = c(20,20,20,20)
> database = cbind(var1,var2,var3)
> 
> database
     var1 var2 var3
[1,] "A"  "10" "20"
[2,] "B"  "2"  "20"
[3,] "C"  "-3" "20"
[4,] "D"  "1"  "20"
> removeRow = which(database==-1, arr.ind=T)[,1]
> if(length(removeRow)>0){ 
+     database = database[-removeRow,]  
+ }
> 
> database
     var1 var2 var3
[1,] "A"  "10" "20"
[2,] "B"  "2"  "20"
[3,] "C"  "-3" "20"
[4,] "D"  "1"  "20"
> 
> #I include an example with -3 as you have no data equal to -1
> removeRow = which(database==-3, arr.ind=T)[,1]
> if(length(removeRow)>0){ 
+     database = database[-removeRow,]  
+ }
> 
> database
     var1 var2 var3
[1,] "A"  "10" "20"
[2,] "B"  "2"  "20"
[3,] "D"  "1"  "20"
pk_22
  • 288
  • 1
  • 2
  • 18