如果选择列中的值出现两次(或更多),我想删除数据框中的行。这是一个例子:
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
有人可以帮我这个吗?