[英]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 有37个NA
行。 ( 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.