矩阵行选择中的R个多重条件

Jet*_*tse 3 row r matrix selection conditional-statements

可能重复:
R:组合条件的逻辑和运算符应为&而不是&&

我有一个简单的问题,但是我不知道该如何解决...我想选择value_1> 0和value_2> 0的所有行。现在我有了以下代码:

dataOnBoth<-data[data$value_1 > 0,][data$value_2 > 0,]
Run Code Online (Sandbox Code Playgroud)

当我在log2_fold_change上订购这些数据时,我得到以下输出:

gene_id        sample_1 sample_2 status   value_1 value_2 log2_fold_change
86  uc001aen.1       q1       q2 NOTEST 0.0619347       0    -1.79769e+308
150 uc001ahx.1       q1       q2 NOTEST 0.0432199       0    -1.79769e+308
186 uc001ajk.1       q1       q2 NOTEST 0.0854541       0    -1.79769e+308
251 uc001amf.1       q1       q2 NOTEST 0.0636211       0    -1.79769e+308
358 uc001are.3       q1       q2 NOTEST 0.3642040       0    -1.79769e+308
394 uc001ass.1       q1       q2 NOTEST 0.0196794       0    -1.79769e+308
        test_stat   p_value q_value significant
86  -1.79769e+308 0.4767020       1          no
150 -1.79769e+308 0.3960920       1          no
186 -1.79769e+308 0.0631033       1          no
251 -1.79769e+308 0.4428030       1          no
358 -1.79769e+308 0.1083640       1          no
394 -1.79769e+308 0.1489190       1          no
Run Code Online (Sandbox Code Playgroud)

所以R没有测试第二个条件...当使用&测试两个条件时,我收到0行:

dataOnBoth<-data[data$value_1 > 0 && data$value_2 > 0,]
Run Code Online (Sandbox Code Playgroud)

如何选择value_1> 0和value_2> 0的所有行?

csg*_*pie 6

您需要使用单个“&”:

dataOnBoth = data[data$value_1 > 0 & data$value_2 > 0,]
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参见此问题