R 如果在给定间隔之间,则删除变量内的观测值

R 如果在给定间隔之间,则删除变量内的观测值,r,database,R,Database,我有一个包含3个变量的数据库: Var1 Var2 var3 A 10 20 b220 C-320 d120 如果-1,我需要一个删除(省略)任何观察值的通用命令 有什么帮助吗?那么一行代表观察结果? 或者分别针对每个变量 那么,对于var2,您可以这样做 Var2 = Var2[-which(Var2==-1)] 当然,其他人也一样 如果要在整个数据库上执行此操作: > var1 = c("A","B","C","D") > var2 = c(10,2,-3,1) > va

我有一个包含3个变量的数据库:

Var1 Var2 var3

A 10 20

b220

C-320

d120

如果-1,我需要一个删除(省略)任何观察值的通用命令
有什么帮助吗?

那么一行代表观察结果? 或者分别针对每个变量

那么,对于var2,您可以这样做

Var2 = Var2[-which(Var2==-1)]
当然,其他人也一样

如果要在整个数据库上执行此操作:

> 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"