2016-04-22 223 views
0

コンソールで実行するとコードの塊が私のために働くという独特の状況があります。 Rマークダウンファイル、エラーが発生しています。ここでは、コードは次のようになります。Rのエラー: 'オブジェクトが見つかりません'、コードがRで動作していませんMarkdown

The object peak_wk not found Calls:<Anonymous> . . . 
    WithCallingHandlers -> withVisible -> eval -> eval -> plot execution halted". 

を、私はこれに、これをコードを変更しようとしているが、それでもエラーを取得しています:

{r,echo=FALSE, message=FALSE, fig.width=3, fig.height=3} 
    library(cdcfluview) 
    library(mosaic) 
    library(ggplot2) 
    library(dplyr) 

    neflu <- get_flu_data("census", "1", "ilinet", years=1997:2016) 
    neflu[neflu=="X"]<-NA 

    wk_new <- rep(NA, nrow(neflu)) 
    season_new <- rep('0', nrow(neflu)) 

    for(i in 1:nrow(neflu)){ 
    if(neflu$WEEK[i] == 40){ 
     wk_num <- 1 
    } 
    wk_new[i] <- wk_num 
    wk_num <- wk_num+1 

    if(neflu$WEEK[i] < 40) { 
     season_new[i] <- paste(neflu$YEAR[i]-1, '-', neflu$YEAR[i]) 
    } else { 
     season_new[i] <- paste(neflu$YEAR[i], '-', neflu$YEAR[i]+1) 
    } 
    } 

    neflu_new <- cbind(neflu, wk_new, season_new) 

    weighted_ili <- mutate(neflu_new, weighted_ili = as.numeric(X..WEIGHTED.ILI)) 
    peak_ili <- max(weighted_ili, na.rm=TRUE) 
    cum_ili <- sum(weighted_ili,na.rm=TRUE) 
    peak_wk <- wk_new[which.max(weighted_ili)] 

    neflu_agg <- neflu_new %>% 
    mutate(weighted_ili = as.numeric(X..WEIGHTED.ILI))%>% 
    group_by(REGION.TYPE, season_new) %>% 
    summarize(peak_ili = max(weighted_ili, na.rm=TRUE), 
     cum_ili = sum(weighted_ili,na.rm=TRUE), 
     peak_wk = wk_new[which.max(weighted_ili)]) 

    neflu_agg2 <- subset(neflu_agg, peak_wk != 5, select=c(REGION.TYPE,season_new,peak_ili,cum_ili, peak_wk)) 

    plot(peak_wk, peak_ili, main= "Peak ILI vs Peak Week", xlab= "Peak Week", ylab= "Peak ILI") 
    nelm1 <- lm(peak_ili~1+peak_wk) 
    abline(nelm1, col='red') 
    plot(peak_ili, cum_ili, main= "Cumulative ILI vs Peak ILI", xlab= "Peak ILI", ylab= "Cumulative ILI") 
    nelm2 <- lm(cum_ili~1+peak_ili) 
    abline(nelm2, col='blue') 

{r,echo=FALSE, message=FALSE, fig.width=3, fig.height=3} 
    library(cdcfluview) 
    library(mosaic) 
    library(ggplot2) 
    library(dplyr) 

    neflu <- get_flu_data("census", "1", "ilinet", years=1997:2016) 
    neflu[neflu=="X"]<-NA 

    wk_new <- rep(NA, nrow(neflu)) 
    season_new <- rep('0', nrow(neflu)) 

    for(i in 1:nrow(neflu)){ 
    if(neflu$WEEK[i] == 40){ 
     wk_num <- 1 
    } 
    wk_new[i] <- wk_num 
    wk_num <- wk_num+1 

    if(neflu$WEEK[i] < 40) { 
     season_new[i] <- paste(neflu$YEAR[i]-1, '-', neflu$YEAR[i]) 
    } else { 
     season_new[i] <- paste(neflu$YEAR[i], '-', neflu$YEAR[i]+1) 
    } 
    } 

    neflu_new <- cbind(neflu, wk_new, season_new) 


    neflu_agg <- neflu_new %>% 
    mutate(weighted_ili = as.numeric(X..WEIGHTED.ILI))%>% 
    group_by(REGION.TYPE, season_new) %>% 
    summarize(peak_ili = max(weighted_ili, na.rm=TRUE), 
     cum_ili = sum(weighted_ili,na.rm=TRUE), 
     peak_wk = wk_new[which.max(weighted_ili)]) 

    neflu_agg2 <- subset(neflu_agg, peak_wk != 5, select=c(REGION.TYPE,season_new,peak_ili,cum_ili, peak_wk)) 

    plot(peak_wk, peak_ili, main= "Peak ILI vs Peak Week", xlab= "Peak Week", ylab= "Peak ILI") 
    nelm1 <- lm(peak_ili~1+peak_wk) 
    abline(nelm1, col='red') 
    plot(peak_ili, cum_ili, main= "Cumulative ILI vs Peak ILI", xlab= "Peak ILI", ylab= "Cumulative ILI") 
    nelm2 <- lm(cum_ili~1+peak_ili) 
    abline(nelm2, col='blue') 

そして、ここでは、私が取得していますエラーメッセージです

これは私が今取得するエラーです:

Error in FUN(X[[i]],...): only defined on data frame with all 
    numeric variables Calls: 

ニットにこのコードを取得するだけで大​​いに感謝します。私は何か非常に明白なものを見逃していると確信していますが、私はそれを理解できません。

+0

最初のコードブロックでは、peak_wkをneflu_agg $ peak_wkとして参照する必要があります。 'dplyr'がdata.frameを返すのは私の理解です。 peak_wkを参照するコードは、neflu_aggという名前のdata.frameを供給しているようです。 – lmo

+0

コードの要約部分でこれを行う必要がありますか?だからneflu_agg $ peak_wk = wk_new [which.max(weighted_ili)])? もし私が新しいエラーメッセージを出すと、予期しない '=' in cum_ili = sum(weighted_ili、na.rm = TRUE)、 – Nathan

+0

いいえ、私は非 'dplyr'コードを参照しています。 'plot'関数です。エラーメッセージ "plot execution halted"に注意してください。 – lmo

答えて

1

私はLMOからの助けを借りて、エラーになった理由を私は今、実現:

peak_wk、peak_ili、およびcum_iliは、地球環境に定義されていませんでした。 plot()関数がデータをどこから引き出しているかを指定する必要がありました。

attach(neflu_agg2) 

これはうまくいきました。

関連する問題