R:根据满足特定条件的列选择中的值删除行

时间:2016-01-07 10:03:12

标签: r dataframe apply

如果选择列中的值出现两次(或更多),我想删除数据框中的行。这是一个例子:

set.seed(8)
dat <- data.frame(matrix(sample(c(1:15), 15, replace=TRUE), ncol=5))
show(dat)

  X1 X2 X3 X4 X5
1  7 10  5 10  7
2  4  5 14  7  9
3 12 11 12  2  3

我现在想要删除值10在列1:4中出现两次(或更多)的行。这就是我试过的:

myFunction <- function(x){
              ifelse(rowSums(x == 10) > 1, x, NULL)
              }

dat <- t(apply(dat[,1:4], 1, myFunction))

这会给我一个错误。我也尝试在subset()中使用myFunction,但我失败了。结果应如下所示:

> show(dat)          # <- Notice that row 1 was deleted because the value 10 occured twice

  X1 X2 X3 X4 X5
2  4  5 14  7  9
3 12 11 12  2  3

有人可以帮我这个吗?

0 个答案:

没有答案