R 删除单元格与给定向量匹配的数据帧行

R 删除单元格与给定向量匹配的数据帧行,r,dataframe,subset,R,Dataframe,Subset,我有一个大数据框架,有不同数量的列和行。我希望在数据框中搜索给定向量的值,并删除与该给定向量的值匹配的单元格行。我希望将它作为一个函数,因为我必须在变量行和列的多个数据帧上运行它,并且我希望避免for循环 比如说 ff<-structure(list(j.1 = 1:13, j.2 = 2:14, j.3 = 3:15), .Names = c("j.1","j.2", "j.3"), row.names = c(NA, -13L), class = "data.frame") ff将测

我有一个大数据框架,有不同数量的列和行。我希望在数据框中搜索给定向量的值,并删除与该给定向量的值匹配的单元格行。我希望将它作为一个函数,因为我必须在变量行和列的多个数据帧上运行它,并且我希望避免
for
循环

比如说

ff<-structure(list(j.1 = 1:13, j.2 = 2:14, j.3 = 3:15), .Names = c("j.1","j.2", "j.3"), row.names = c(NA, -13L), class = "data.frame")

ff
将测试应用于每行:

keeps <- apply(ff, 1, function(x) !any(x %in% 8:10))

我认为
apply
策略可能是最经济的,但也可以执行以下任一操作:

 ff[ !rowSums( sapply( ff, function(x) x %in% 8:10) ) , ]
ff[ !Reduce("+", lapply( ff, function(x) x %in% 8:10) ) , ]
逻辑向量的向量加法(相当于
any
),后跟否定。我怀疑第一个会更快

 ff[ !rowSums( sapply( ff, function(x) x %in% 8:10) ) , ]
ff[ !Reduce("+", lapply( ff, function(x) x %in% 8:10) ) , ]