【发布时间】:2016-02-07 17:51:15
【问题描述】:
我正在使用 R,我正在尝试根据一些约束从数据框中删除一些行。所以,如果我得到了
dat <- data.frame(Cs=c("c1","c2","c3","c4","c5","c6"),
R1=sample(c("Y","N"),6,replace=TRUE), R2=sample(c("Y","N"),6,replace=TRUE),
R3=sample(c("Y","N"),6,replace=TRUE), R4=sample(c("Y","N"),6,replace=TRUE),
R5=sample(c("Y","N"),6,replace=TRUE), R6=sample(c("Y","N"),6,replace=TRUE))
我想删除在某些给定列(例如 R1、R3、R4)处具有“N”的所有行。对于一列,我找到了这个解决方案:delete row for certain constrains
d <- dat[dat[,"R1"]!="N",]
效果很好。但是如果我把多个列作为
d <- dat[dat[,c("R1","R3","R4")]!="N",]
我有很多额外的行充满了 NA。那我哪里错了?
【问题讨论】:
-
如果您感兴趣的任何列中有任何“N”,您要删除该行吗?
-
没错!我忘了说。对不起
-
试试
dat[rowSums(dat == "N") == 0, ] -
它似乎不起作用。我有一个空的数据框
-
@Stefano,这可能是因为您测试的样本中没有没有 N 的行
标签: r dataframe filtering delete-row