计算检出率的R实现

结合length()和which()命令,可以得到一个方便的方法来计算满足特定条件的元素。

b <- c(7, 2, 4, 3, -1, -2, 3, 3, 6, 8, 12, 7, 3)
b

事实上,你可以计算满足几乎任何给定条件的元素的数量。

length(which(b < 7))
[1] 9

下面是另一种方法,同样使用length()命令,但也使用方括号进行子集。

length(b[ b < 7 ])
[1] 9

方括号允许我们进行子集。对于这种使用方括号的操作,我喜欢用 "这样 "这个词。在这里,我们有b的元素,这样的元素是小于7的。

R提供了更多选择

sum(b < 7)
[1] 9

这种语法给出了一个计数而不是一个总和。要注意sum(b < 7)这样的语法的含义。这两种语法都适用于逻辑向量,其元素要么为 "真",要么为 "假"。试着在键盘上输入b <- 7。

b < 7
[1] FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE TRUE

我们看到sum(b < 7)计算的是TRUE元素的数量。有九个这样的元素。

mean(b < 7)
[1] 0.6923077

这种语法找到了符合标准的元素的比例,而不是平均值。同样,如果你使用sum()和mean()函数,你必须非常小心,以确保你的输出是你想要的。请注意,sum()、length()和length(which())都提供了计算元素的机制。

现在找出b中7的百分比。

P7 <- 100 * length(which(b == 7)) / length(b)
P7
[1] 15.38462

更多例子

你可以使用涉及length(which())的函数查找计数和百分比。这里我们创建了两个函数;一个用于查找计数,另一个用于计算百分比。

count <- function(x, n){ length((which(x == n))) }
perc <- function(x, n){ 100*length((which(x == n))) / length(x) }

注意在R中设置函数所涉及的语法。现在让我们用count函数来计算向量b中的3个数。

count(b, 3)
[1] 4
perc(b, 4)
[1] 7.692308

猜你喜欢

转载自blog.csdn.net/qq_42458954/article/details/112715772