R如何计算数据框的多个列中值的出现次数,并将特定值的列式计数保存为新行?

use*_*950 2 r count find-occurrences

我有一个大型数据框(大约1,000行和30,000列),如下所示:

   chr pos  sample1 sample2 sample3 sample 4
    1 5050    1       NA      0       0.5
    1 6300    1       0       0.5     1
    1 7825    1       0       0.5     1
    1 8200    0.5     0.5     0       1
Run Code Online (Sandbox Code Playgroud)

在给定的"chr"和"pos"处,给定样品的值可以采用0,0.5,1或NA的形式.我需要执行大量查询,这需要根据每个样本的值的摘要对数据帧进行子集化和排序.

我想得到每列给定值(例如0.5)的出现次数,并将其保存为数据框中的新行.我的最终目标是能够使用新行的值来子集和/或排序我的数据框的列.我已经看到了有关计算事件的类似问题,但我似乎无法找到/识别在所有列中同时执行此操作的解决方案,并将特定值的列方计数保存为新行.

Don*_*beo 6

您可以将函数应用于data.frame的所有列.假设您要计算data.frame d每列中的"A"数

#a sample data.frame
    L3 <- LETTERS[1:3]
     (d <- data.frame(cbind(x = 1, y = 1:10), fac = sample(L3, 10, replace = TRUE)))



# the function you are looking for
    apply(X=d,2,FUN=function(x) length(which(x=='A')))
Run Code Online (Sandbox Code Playgroud)