使用哪个子集()

时间:2017-09-06 13:30:30

标签: r

当我执行下面的代码时,一些与规则不一致的元素仍保留在数据框中:

coefs.total.b <- coefs.total[-which(coefs.total[1:1000, 25:36] < 0.001 &
                                    coefs.total[1:1000, 37:48] > 0.6), ]

1 个答案:

答案 0 :(得分:0)

which(coefs.total[1:1000, 25:36] < 0.001)将(假设coefs.total是一个矩阵)测试每个单独的单元格,逐行移动。换句话说,第一行的第26行将是第1001个值,依此类推。

如果要组合不同行的测试,则需要明确地执行此操作。根据您的评论,我假设您想要将它们与或组合。这可以通过apply行方式使用函数any(类似all来表达和)来完成,或者使用rowSums我将要显示的内容:

 coefs.total.b <- coefs.total[-which(
    rowSums(coefs.total[1:1000, 25:36] < 0.001) > 0 &
    rowSums(coefs.total[1:1000, 37:48] > 0.6) > 0), ]