我有一个大型数据框(大约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
在给定的"chr"和"pos"处,给定样品的值可以采用0,0.5,1或NA的形式.我需要执行大量查询,这需要根据每个样本的值的摘要对数据帧进行子集化和排序.
我想得到每列给定值(例如0.5)的出现次数,并将其保存为数据框中的新行.我的最终目标是能够使用新行的值来子集和/或排序我的数据框的列.我已经看到了有关计算事件的类似问题,但我似乎无法找到/识别在所有列中同时执行此操作的解决方案,并将特定值的列方计数保存为新行.
您可以将函数应用于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')))