根据值提取行

时间:2012-03-15 23:56:40

标签: r

我有制表符分隔文本文件,其中包含以下列:

Probe    A_sig  A_Pval  
ILMN_122 12.31   0.04    
ILMN_456 56.12   0      
ILMN_198 981.2   0.06    
ILMN_980 876.0   0.001   
ILMN_542 123.9   0.16     
ILMN_567 134.1   0      
ILMN_452 213.4   0.98     
ILMN_142 543.8   0.04  
ILMN_765 187.4   0.05    

现在我想取出那些Pval <.05的行。输出应该看起来像

     Probe     A_sig   A_Pval  
   ILMN_122     12.31   0.04  
   ILMN_980     876.0   0.001   
   ILMN_142     543.8   0.04   

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:9)

我会回答这个问题,但这是一个基本问题,可能会在此列表的其他地方重复出现。

加载数据。

DAT <- read.table(text="Probe    A_sig  A_Pval  
ILMN_122 12.31   0.04   
ILMN_456 56.12   0        
ILMN_198 981.2   0.06   
ILMN_980 876.0   0.001     
ILMN_542 123.9   0.16      
ILMN_567 134.1   0          
ILMN_452 213.4   0.98
ILMN_142 543.8   0.04
ILMN_765 187.4   0.05", h=T)

您可以使用索引,如下所示:

DAT[DAT$A_Pval <.05, ]

然而,这也会返回零值。这不是你输出的样子。如果您不希望零使用逻辑运算符&amp;以及:

DAT[DAT$A_Pval <.05 & DAT$A_Pval!=0, ]

我建议您查看一些手册和此(LINK)参考卡,以帮助您入门。

答案 1 :(得分:2)

my_dataframe[my_dataframe$A_Pval < 0.05,]

尾随逗号非常重要。