2012-12-07 71 views
2

可能重复:
R: subset() logical-and operator for combining conditions should be & not &&R时的行选择多个条件

我有一个简单的问题,但我不知道如何解决这个...我 想要选择其中value_1> 0和value_2> 0的所有行。 现在我有此代码:

dataOnBoth<-data[data$value_1 > 0,][data$value_2 > 0,] 

当我前往这个数据,订购的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 

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

dataOnBoth<-data[data$value_1 > 0 && data$value_2 > 0,] 

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

+1

single'&'对每个元素执行检查,double'&'对整个列表/向量执行检查。 – RyanGrannell

回答

3

你需要使用一个单独的 '&':

dataOnBoth = data[data$value_1 > 0 & data$value_2 > 0,] 

详情请参阅this question

+0

谢谢,在google和stackoverflow上使用错误的单词进行搜索... – Jetse