【发布时间】:2020-10-23 00:55:59
【问题描述】:
我有一个大矩阵(10000 列和 600 行),下面显示了一个示例,其中包含核苷酸,但也包含 NA。我想计算每列每个核苷酸(因子)的出现次数,但忽略 NA。输出应该在一个列表中。
`r1 <- c("a","c","a","a","t","c")
r2 <- c("a","c","t","t","c","a")
r3 <- c("a","g","g","c","a","c")
r4 <- c("a","g","g","g","g","c")
r5<- c(NA, "g","g","g","t","g")
n.mat <- rbind(r1,r2,r3,r4,r5)`
输出应该在一个列表中,该列表仅包含每列中每个核苷酸的出现次数。所以每个 List 元素都应该包含一列的数字。
[[1]]
[1] "4"
[[2]]
[2] "2" "3"
[[3]]
[3] "1" "1" "3"
[[4]]
[4] "1" "1" "1" "2"
[[4]]
[4] "2" "1" "1" "1"
[[5]]
[5] "3" "1" "1"
我已经在尝试找到解决方案,但我不知道如何实际计算矩阵中每列的出现次数。我的代码是:
alleles_nmat <- apply(n.mat, 2, function(x) unique(x[!is.na(x)]))
我希望有人可以帮助我。
【问题讨论】:
-
请注意
"NA"不是NA,NA是(不带引号)。