генерировать недетерминированный c результат для каждой строки тиббла с изменением - PullRequest
2 голосов
/ 28 мая 2020
tibble(x=c(1,2,3)) %>%
  mutate(y = runif(1))

В результате для каждого Y назначается одно и то же количество. Почему это так и как я могу гарантировать, что функция, которую я предоставляю, вызывается один раз для каждой строки, независимо от значения и типа аргументов?

1 Ответ

3 голосов
/ 28 мая 2020

Аргумент n для runif() принимает либо целое число, либо вектор значений. Если используется вектор, его длина принимается равной требуемому числу. Это означает, что вы можете передать ему вектор любого класса, и он вернет результат равной длины.

library(dplyr)

tibble(x=c(1,2,3)) %>%
  mutate(y = runif(x))

# A tibble: 3 x 2
      x     y
  <dbl> <dbl>
1     1 0.445
2     2 0.778
3     3 0.632
...