首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算R中两列中的缺失值

如何计算R中两列中的缺失值
EN

Stack Overflow用户
提问于 2021-09-07 06:16:23
回答 2查看 52关注 0票数 0

我有一个数据框,看起来像这样

代码语言:javascript
复制
**Contig_A**    **Contig_B**   

  Contig_0        Contig_1 
  Contig_3        Contig_5
  Contig_4        Contig_1
  Contig_9        Contig_0

我想计算有多少个重叠群in (从Contig_0到Contig_1193)没有出现在Contig_B的两个Contig_A列中。

例如:如果我们考虑这个数据帧总共有10个重叠群(Contig_0到Contig_9),那么答案将是4 (Contig_2,Contig_6,Contig_7,Contig_8)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-07 06:24:34

创建一个包含您想要检查的所有值的向量(all_contig),它在这里是Contig_0 to Contig_10。使用setdiff查找缺少的值,使用length获取缺少的值的计数。

代码语言:javascript
复制
cols <- c('Contig_A', 'Contig_B')
#If there are lot of 'Contig' columns that you want to consider
#cols <- grep('Contig', names(df), value = TRUE)

all_contig <- paste0('Contig_', 0:10)

missing_contig <- setdiff(all_contig, unlist(df[cols]))
#[1] "Contig_2"  "Contig_6"  "Contig_7"  "Contig_8"  "Contig_10"

count_missing <- length(missing_contig)
#[1] 5
票数 2
EN

Stack Overflow用户

发布于 2021-09-07 06:26:30

作者:match

代码语言:javascript
复制
x <- c(0:9)
contigs <- sapply(x, function(t) paste0("Contig_",t))
df1 <- data.frame(
  Contig_A = c("Contig_0", "Contig_3", "Contig_4", "Contig_9"),
  Contig_B = c("Contig_1", "Contig_5", "Contig_1", "Contig_0")
)
xx <- c(df1$Contig_A,df1$Contig_B)
contigs[is.na(match(contigs, xx))]

[1] "Contig_2" "Contig_6" "Contig_7" "Contig_8"

在本例中,只需将x更改为x <- c(0,1193)即可

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69083200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档