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) ) , ]