繁体   English   中英

比较 Data.Frame 行中的单元格值 - 令人费解的 Output

[英]Comparing cell values within rows of a Data.Frame - Puzzeling Output

我有一个使用来自 dplyr 的 full_join() 加入的 Data.Frame。 它看起来像这样:

View(df1)

Gene Pval   Pval2
ZIC3 0.4123 0.4124
GLA  *NA*   0.135
AFF2 0.003  *NA*
...  ...    ...

我想提取所有 Pval != Pval2 的基因,所以我使用了

DF2 <- DF1[DF1$Pval != DF1$Pval2, ]

这已经提取了不匹配的记录 ( 294 ),但 DF2 还包含38 个额外的行,这些行都是NA ,尽管 DF1 不包含任何完整的NA行。 共 332 人

同样,如果我这样做

DF3 <- DF1[DF1$Pval == DF1$Pval2, ]

DF3 有37NA行。 13,711非空,总共13,748

原来的DF1有14042行。

问题是,我不明白这些空行是从哪里来的,为什么 DF2、DF3 中的数字加起来不等于 DF1……

我们还可以在is.na中包含一个条件

 DF1[(DF1$Pval != DF1$Pval2) | (is.na(DF1$Pval) |is.na(DF1$Pval2)), ]

可能导致的一个问题是当我们对浮点进行比较时,因为精度可能不同,并导致意外的 output。 round入比较可能会更好

DF1[(round(DF1$Pval, 2) != round(DF1$Pval2, 2)) | 
         (is.na(DF1$Pval) | is.na(DF1$Pval2)), ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM