Ошибка при разборе (text = x, keep.source = FALSE): <text>: 2: 0: неожиданный конец ввода 1: OffenceAgainst ~ ^ - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь перебрать список векторов символов и использовать другие функции для формирования линейных моделей и вычисления значений для меня:

all_model_error<-function(explan_vars,depvar,dataset1,dataset2)
{
 x<-list() 
 model_combinations<-all_models(explan_vars)
  for(i in 1:length(model_combinations))
  {

    x[[i]]<-error_rates(model_combinations[[i]],depvar,dataset1,dataset2)


  }
 return(x)

}

Однако, когда я запускаю эту функцию, я получаю эту ошибку в разборе.parse() не используется ни в одной функции в этой функции, и я не понимаю, почему я получаю эту ошибку.

Базовые функции определены так:

gen_formula<-function(depvar,explan_vars)
{

  reg_form<-as.formula(paste(depvar,"~",paste(explan_vars,collapse = "+")))

  return(reg_form)

}

Thisпросто возвращает ваш ввод в форме, которую принимает функция lm (). Затем:

error_rates<-function(indvars,explan_vars,dataset1,dataset2)
{
  reg_results<-lm(gen_formula(depvar,explan_vars),data=dataset1)
  summary(reg_results)

  df_training<-dataset1 %>%
    add_residuals(reg_results) %>%
    summarize(error_rate=mean(resid^2))
  training_error<-df_training[1,1]

  df_test<-dataset2 %>%
    add_residuals(reg_results) %>%
    summarize(error_rate=mean(resid^2))
  test_error<-df_test[1,1]


  return(c(test_error,training_error))

}

это просто вычисляет ошибку модели по данным вашего теста и обучения.затем:

name_from_bin<-function(b,vars)
{
  return(vars[as.logical(b)])
}



all_models<-function(variables)
{

  k<-length(variables)

  bin_vec<-rep(list(0:1),k)

  bin_mat<-expand.grid(bin_vec)

  list_of_RHS<-list()

  for(i in 1:nrow(bin_mat))
  {
    list_of_RHS[[i]]<-name_from_bin(bin_mat[i,],variables)



  }
  return(list_of_RHS)
}

Эти функции используются для создания матрицы всех возможных комбинаций числа переменных, на которых основывается модель.Затем он возвращает эти символьные векторы в виде списка всех возможных комбинаций переменных.

Я хочу запустить all_model_error, чтобы найти error_rates () для all_models ().Базовые функции выполняют задачу, которую я хочу, и не включают parse (), поэтому я путаюсь с ошибкой.

Я запускаю all_model_error (объяснение_vars, depvar, crime_weather_1, crime_weather_2) и получаю этоошибка.Где depvar - это одна переменная OffenseAgainst в моем наборе данных, а объяснение_vars - это вектор из 14 переменных в наборе данных.Crime_weather_1 и 2 - наборы обучающих и тестовых данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...