Функция репликации не работает с функцией «на лету» - PullRequest
1 голос
/ 15 января 2020

У меня есть следующее data.frame:

df_1 <- data.frame(
  x = replicate(
    n = 6, expr = runif(n = 30, min = 20, max = 100), simplify = TRUE
  )
)

Я хочу сгенерировать 50 data.frame с этой функцией:

f_1 <- function(x) {
  data.frame(x = replicate(n = 5, runif(n = 30, min = 20, max = 100)))
}


lt_1 <- replicate(n = 50, expr = f_1(), simplify = FALSE)

Результат в порядке. Но когда применяется f_1 внутри функции ( на лету ), эта функция не работает:

lt_2 <- replicate(
  n = 50, expr = function(x) {
    data.frame(x = replicate(n = 5, runif(n = 30, min = 20, max = 100)))
    }, simplify = FALSE
)

В чем проблема?

1 Ответ

1 голос
/ 15 января 2020

Мы можем обернуть его внутри () и вызвать () для выполнения функции

lt_2 <- replicate(
   n = 50, expr = (function(x) {
     data.frame(x = replicate(n = 5, runif(n = 30, min = 20, max = 100)))
       })(), simplify = FALSE
  )

В операторе lt_1 функция вызывается с помощью f_1()

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