我有一个biglist
,其中包含0个子列表,每个子列表都是List of 1
。
当我>biglist
时,我得到了这个:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
LIST1 Numeric,6 Numeric,6 Numeric,6 Numeric,6 Numeric,6 Numeric,6 Numeric,6 Numeric,6
每个子列表包含整数值和NA值。即。
>biglist[1]
收益
NA 0.50 NA NA 0.25 1.00 NA 0.00`
>biglist[2]
收益
0.500 0.375 0.000 0.500 NA 0.500 0.500 NA
等等。我试图找到子列表的所有整数值的第50百分位数和第95百分位数,但我想摆脱NA
值。我该如何做到这一点?
编辑:可重复的例子
biglist <- list(c(NA, 0.5, NA, NA, 0.25, 1, NA, 0), c(0.5, NA, NA, NA, NA,NA, NA, NA), c(0.5, 0.375, 0, 0.5, NA, 0.5, 0.5, NA), c(NA, NA,NA, NA, NA, 0.5, 0.5, 0.333333333333333), c(NA, NA, 0.125, NA,0.5, 1, 0.5, 0.5), c(0.5, 0.25, 0.5, NA, NA, NA, NA, 0.5), c(0.625,NA, NA, 0.5, NA, NA, NA, NA), c(0.25, NA, 0.5, NA, NA, NA, NA,0.333333333333333), c(0.25, 0.75, NA, 0.5, 0.5, NA, 0, NA), c(NA,NA, 0.375, NA, 0.5, 0.5, 1, NA))
答案 0 :(得分:1)
使用lapply
或sapply
如下
sapply(biglist, quantile, prob=c(.50, .95), na.rm=TRUE )
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# 50% 0.375 0.5 0.5 0.5 0.5 0.5 0.56250 0.333333 0.5 0.500
# 95% 0.925 0.5 0.5 0.5 0.9 0.5 0.61875 0.483333 0.7 0.925
sapply(biglist, quantile, prob=c(.50, .95), na.rm=TRUE, simplify=FALSE )
# [[1]]
# 50% 95%
# 0.375 0.925
# [[2]]
# 50% 95%
# 0.5 0.5
# [[3]]
# 50% 95%
# 0.5 0.5
# [[4]]
# 50% 95%
# 0.5 0.5
# [[5]]
# 50% 95%
# 0.5 0.9
# [[6]]
# 50% 95%
# 0.5 0.5
# [[7]]
# 50% 95%
# 0.56250 0.61875
# [[8]]
# 50% 95%
# 0.333333 0.483333
# [[9]]
# 50% 95%
# 0.5 0.7
# [[10]]
# 50% 95%
# 0.500 0.925