我有一个数据帧df
Reads Counts
aaaa 10
bbbb 20
cccc 25
等等。
我想计算超过某个计数值的读数,并绘制出来。示例我想要一个看起来像
的数据框 Counts>= #reads with Counts>=
1 3
2 3
3 3
11 2
20 2
21 1
等等。你能否建议我如何获得这样的数据框并绘制它。
答案 0 :(得分:2)
考虑到你想要绘制的等级......
cutoffs <- 1:30
......你可以这样做:
data.frame(cutoff=cutoffs, num.above=Reduce("+", lapply(dat$Counts, ">=", cutoffs)))
# cutoff num.above
# 1 1 3
# 2 2 3
# 3 3 3
# 4 4 3
# 5 5 3
# 6 6 3
# 7 7 3
# 8 8 3
# 9 9 3
# 10 10 3
# 11 11 2
# 12 12 2
# 13 13 2
# 14 14 2
# 15 15 2
# 16 16 2
# 17 17 2
# 18 18 2
# 19 19 2
# 20 20 2
# 21 21 1
# 22 22 1
# 23 23 1
# 24 24 1
# 25 25 1
# 26 26 0
# 27 27 0
# 28 28 0
# 29 29 0
# 30 30 0
基本上,对于原始数据框中的每个值,您计算一个向量是否大于或等于每个截止值(使用带有lapply
的{{1}})。然后将它们添加(使用>=
Reduce
),使总数大于或等于每个截止值。
答案 1 :(得分:1)
另一种选择是使用outer/colSums
cutoff <- 1:30
data.frame(cutoff=cutoffs, num.above=colSums(outer(df$Counts, cutoffs, ">=")))