Вязание не работает должным образом по сравнению с запуском чанка - PullRequest
0 голосов
/ 18 мая 2019

При вязании документа уценки следующий блок создает только NA в фрейме данных s, но выполнение фрагмента независимо работает, как и ожидалось.Все необходимые data.frames, которые вызываются в функциях lmer (), были созданы ранее в документе уценки.Я думаю, что это может быть что-то с функцией get (), но я не понимаю, почему это будет работать с запуском чанка, но не при вязании.

s=data.frame(row.names = c("ss_on","ss_off","nonss_on","nonss_off","log_draws","log_length","ss_on_co2"),
             var_names=c("ss_on_","ss_off_","nonss_on_","nonss_off_","log_draws_","log_length_","ss_on_co2_"),
             log_twh=c(T,T,F,T,F,T,F),
             log_swh=c(T,T,T,T,T,F,F),
             twh = "",twh_uci = "",twh_lci = "",swh="",swh_uci="",swh_lci="")

for(i in which(s$log_twh==F)){
  lmer.fit <- lmer(y ~  (1| Location) , data=get(paste0(s$var_names[i],"twh")))
  t=summary(lmer.fit)
  s$twh[i]=t$coefficients[1]
  s$twh_uci[i]=t$coefficients[1]+as.data.frame(t$varcor)$sdcor[1]
  s$twh_lci[i]=t$coefficients[1]-as.data.frame(t$varcor)$sdcor[1]
}
for(i in which(s$log_swh==F)){
  lmer.fit <- lmer(y ~  (1| Location) , data=get(paste0(s$var_names[i],"swh")))
  t=summary(lmer.fit)
  s$swh[i]=t$coefficients[1]
  s$swh_uci[i]=t$coefficients[1]+as.data.frame(t$varcor)$sdcor[1]
  s$swh_lci[i]=t$coefficients[1]-as.data.frame(t$varcor)$sdcor[1]
}

for(i in which(s$log_twh==T)){
  lmer.fit <- lmer(log(y) ~  (1| Location) , data=get(paste0(s$var_names[i],"twh")))
  t=summary(lmer.fit)
  s$twh[i]=exp(t$coefficients[1])
  s$twh_uci[i]=exp(t$coefficients[1]+as.data.frame(t$varcor)$sdcor[1])
  s$twh_lci[i]=exp(t$coefficients[1]-as.data.frame(t$varcor)$sdcor[1])
}

for(i in which(s$log_swh==T)){
  lmer.fit <- lmer(log(y) ~  (1| Location) , data=get(paste0(s$var_names[i],"swh")))
  t=summary(lmer.fit)
  s$swh[i]=exp(t$coefficients[1])
  s$swh_uci[i]=exp(t$coefficients[1]+as.data.frame(t$varcor)$sdcor[1])
  s$swh_lci[i]=exp(t$coefficients[1]-as.data.frame(t$varcor)$sdcor[1])
}
print(s)

Все значения вставлены во фрейм данных sNA при вязании, но работают правильно при работе с чанком.

1 Ответ

0 голосов
/ 18 мая 2019

Вы должны проверить, что ваша среда чиста. Запуск предоставленного вами кода приводит к нескольким ошибкам (см. Ниже).

Похоже, что это наиболее распространенная причина того, что код запускается, как и ожидалось, в консоли или чанке по чанку, но не получается при вязании.

library(lme4)
#> Loading required package: Matrix
s=data.frame(row.names = c("ss_on","ss_off","nonss_on","nonss_off","log_draws","log_length","ss_on_co2"),
             var_names=c("ss_on_","ss_off_","nonss_on_","nonss_off_","log_draws_","log_length_","ss_on_co2_"),
             log_twh=c(T,T,F,T,F,T,F),
             log_swh=c(T,T,T,T,T,F,F),
             twh = "",twh_uci = "",twh_lci = "",swh="",swh_uci="",swh_lci="")

for(i in which(s$log_twh==F)){
  lmer.fit <- lmer(y ~  (1| Location) , data=get(paste0(s$var_names[i],"twh")))
  t=summary(lmer.fit)
  s$twh[i]=t$coefficients[1]
  s$twh_uci[i]=t$coefficients[1]+as.data.frame(t$varcor)$sdcor[1]
  s$twh_lci[i]=t$coefficients[1]-as.data.frame(t$varcor)$sdcor[1]
}
#> Error in checkFormulaData(formula, data, checkLHS = control$check.formula.LHS == : bad 'data': object 'nonss_on_twh' not found
for(i in which(s$log_swh==F)){
  lmer.fit <- lmer(y ~  (1| Location) , data=get(paste0(s$var_names[i],"swh")))
  t=summary(lmer.fit)
  s$swh[i]=t$coefficients[1]
  s$swh_uci[i]=t$coefficients[1]+as.data.frame(t$varcor)$sdcor[1]
  s$swh_lci[i]=t$coefficients[1]-as.data.frame(t$varcor)$sdcor[1]
}
#> Error in checkFormulaData(formula, data, checkLHS = control$check.formula.LHS == : bad 'data': object 'log_length_swh' not found

for(i in which(s$log_twh==T)){
  lmer.fit <- lmer(log(y) ~  (1| Location) , data=get(paste0(s$var_names[i],"twh")))
  t=summary(lmer.fit)
  s$twh[i]=exp(t$coefficients[1])
  s$twh_uci[i]=exp(t$coefficients[1]+as.data.frame(t$varcor)$sdcor[1])
  s$twh_lci[i]=exp(t$coefficients[1]-as.data.frame(t$varcor)$sdcor[1])
}
#> Error in checkFormulaData(formula, data, checkLHS = control$check.formula.LHS == : bad 'data': object 'ss_on_twh' not found

for(i in which(s$log_swh==T)){
  lmer.fit <- lmer(log(y) ~  (1| Location) , data=get(paste0(s$var_names[i],"swh")))
  t=summary(lmer.fit)
  s$swh[i]=exp(t$coefficients[1])
  s$swh_uci[i]=exp(t$coefficients[1]+as.data.frame(t$varcor)$sdcor[1])
  s$swh_lci[i]=exp(t$coefficients[1]-as.data.frame(t$varcor)$sdcor[1])
}
#> Error in checkFormulaData(formula, data, checkLHS = control$check.formula.LHS == : bad 'data': object 'ss_on_swh' not found
print(s)
#>              var_names log_twh log_swh twh twh_uci twh_lci swh swh_uci
#> ss_on           ss_on_    TRUE    TRUE                                
#> ss_off         ss_off_    TRUE    TRUE                                
#> nonss_on     nonss_on_   FALSE    TRUE                                
#> nonss_off   nonss_off_    TRUE    TRUE                                
#> log_draws   log_draws_   FALSE    TRUE                                
#> log_length log_length_    TRUE   FALSE                                
#> ss_on_co2   ss_on_co2_   FALSE   FALSE                                
#>            swh_lci
#> ss_on             
#> ss_off            
#> nonss_on          
#> nonss_off         
#> log_draws         
#> log_length        
#> ss_on_co2

Создано в 2019-05-18 с помощью пакета Представление (v0.2.1)

...