2014-09-27 6 views
0

biglist에 0 개의 하위 목록이 있으며 각각은 List of 1입니다. 내가 >biglist을 수행 할 때R의 목록에서 하위 목록의 quantile()을 수행하는 방법은 무엇입니까?

난이 얻을 :

  [,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

안녕을 다음과 SO에 오신 것을 환영한다. 재현 가능한 예제를 만들기 위해'reproduce () '를 사용할 수 있습니다. 지시 사항은 다음과 같습니다. http://bit.ly/SORepro - [훌륭한 R 재현 가능 예제] (http://bit.ly/SORepro) –

답변

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 
+0

@RichardScriven, added –