создать поезд и проверить DF внутри функции - PullRequest
0 голосов
/ 29 мая 2018

Я все еще новичок в R, и у меня возникли некоторые трудности с настройкой функции, которую я могу неоднократно вызывать для различных значений начальных значений (в конечном итоге я хочу вызвать ее 5 раз для 5 случайных начальных значений).Все, что я делаю, это расщепление одного df на 2 df.Код внутри функции работает сам по себе, но когда я размещаю его внутри функции, чтобы вызвать его с помощью set_data (n), код выполняется, но ничего не возвращается.Проблема, которую я считаю, заключается в том, что функция, похоже, не знает, что возвращать.Я пробовал return (df_train) и return (df_test), но эта попытка не удалась.

df_n - это нормализованный фрейм данных, который я хочу разбить на df_train и df_test.Мне было интересно, доступен ли df_n в функции, или мне нужно каким-то образом передать df_n в функцию ???

set_data <- function(n){
  set.seed(n)
  train_percent = 0.6667
  sample_size <- floor(train_percent * nrow(df_n))
  train_ind <- sample(seq_len(nrow(df_n)), size = sample_size)
  df_train <- df_n[train_ind,]
  df_test <- df_n[-train_ind,]
}

n=1
set_data(1)

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

Кевин

1 Ответ

0 голосов
/ 29 мая 2018

Вы можете поместить оба возвращаемых значения в список и вернуть его.Я бы также включил data.frame в вызов функции.Затем вы можете ввести любой data.frame.

df_n <- data.frame(
  x = runif(100,1,100)
)

set_data <- function(df_n, n){
  set.seed(n)
  train_percent = 0.6667
  sample_size <- floor(train_percent * nrow(df_n))
  train_ind <- sample(seq_len(nrow(df_n)), size = sample_size)
  df_train <- df_n[train_ind,]
  df_test <- df_n[-train_ind,]
  return(list(df_train=df_train, df_test=df_test))
}

n=1
result <- set_data(df_n, n)
result$df_train
result$df_test

Если вы хотите назначить df_train и df_test для глобальной среды , вам следует изменить эти строки на код ниже.Это не рекомендуется , и вам следует избегать его, когда это возможно.

  df_train <<- df_n[train_ind,]
  df_test <<- df_n[-train_ind,]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...