2016-08-25 7 views
0

I는 두 개의 데이터 테이블이 - 제 한 인자 (환경)에 대한 복제 (밀도)가 전체 데이터 세트이다 : 중간 밀도를 포함하는 서식지 당 하나의 행으로부트 스트랩 기능을 루프하고 결과를 테이블에 추가하려면 어떻게합니까?

Table1 <- data.frame(
Habitat = sample(c("Woodland", "Grassland"), 10, replace = TRUE), 
Density = sample(1:10) 
) 

번째 인 요약 버전 . 나는 (표 1에 데이터를 사용) 부트 스트랩 신뢰 구간을 얻기 위해 아래의 코드를 가지고

library(dplyr) 
Table2 <-ddply(Table1, "Habitat",summarise, Median = median(Density)) 

......

fun.boot <- function(x, i) {median(x[i])} 
Wood.boot <- boot(data = Table1$Density[Table1$Habitat=="Woodland"],statistic = fun.boot, R = 10000) 
boot.ci(boot.out = Wood.boot, conf = 0.95, type = c("perc")) 

내가 대응에이 데이터를 넣어 싶습니다 (서식지 = 숲) 표 2의 행 만) upperCI에 대해 다음 (이를 이용한 손으로 작업을 수행하는 방법을 알아낼 수 .....

Table2$LowerCI <- rep("NA",nrow(Table2)) 
Table2$LowerCI[Table2$Habitat == "Woodland"] <- 2 

내가 할 수있는 실행 수백 (많이 가지고 종의 제비를위한 서식지), 그래서 나는 좋아한다. 즉

  1. 루프 또는 무언가
  2. 다음 표 2에 그것을 판독하여 각 환경에 대해 신뢰 구간을 생성 ?? - ER이 자동화 할 수있는 방법이 있다면 결과에 대한

답변

0

선언 공간 (참고 : 당신이 NA 따옴표가 필요하지 않습니다) : 이제

Table2$LowerCI <- rep(NA, nrow(Table2)) 
Table2$UpperCI <- rep(NA, nrow(Table2)) 

할 수 있습니다 귀하의 서식지 전체를 반복하고 해당 컬럼에 결과를 저장 :

for(hab in Table2$Habitat) 
{ 
    hab.boot <- boot(data = Table1$Density[Table1$Habitat==hab],statistic = fun.boot, R = 10000) 
    hab.ci <- boot.ci(boot.out = hab.boot, conf = 0.95, type = c("perc")) 
    Table2$LowerCI[Table2$Habitat==hab] <- hab.ci$percent[4] 
    Table2$UpperCI[Table2$Habitat==hab] <- hab.ci$percent[5] 
} 
+0

완벽한, 정말 고마워요! 좌절 한 비트 나는 for 루프를 얻지 못했지만 마지막 비트에 약간 당황했습니다! – Lau99