列中特定值的计数

Count of specific value in column

我有这样的调查问卷数据:

    survey <- data.frame(
    ID = sample(1:10),
    Var1 = sample(c("yes", "no"), 10, replace = TRUE),
    Var2=sample(c("DNK", "yes", "no"), 10, replace = TRUE),
    Var3=sample(c("DNK", "PNA", "yes", "no"), 10, replace = TRUE),
    Var4=sample(c("DNK", "PNA", "yes", "no"), 10, replace = TRUE)
   )

我想知道哪个变量具有最多的 DNK 和 PNA responses.I 认为这将是一个循环函数,但我似乎无法弄清楚。
也就是说,我想要每个变量的输出计数为 PNA/DNK: 例如)

Var3: DNK 4
Var3: DNK 3, PNA 1
Var4: DNK 1, PNA 3

试试这个

library(plyr)
apply(survey[,2:5],2,count)

我会使用:occurrences <- apply(survey, 2, table)

这将 return 一个名为 occurrences 的列表,其中项目 i 包含列 i[ 中每个元素的出现次数=21=].

现在只需要打印或存储输出(取决于您想要什么)。您可以通过以下方式打印它们:

for (i in 1:length(occurrences)){
print(occurrences[i])
}

感谢您的回复。使用提供的回复,这就是我要找的: dnk=apply(subset[,1:dim(survey)[2]], 2, function(x) length(which(x=="DNK")))