Как сделать временное имя переменной при использовании конвейеров - PullRequest
1 голос
/ 19 марта 2020

У меня есть следующий код, и я хочу, чтобы R вернул мне только data.frame, но он все равно возвращает даже другое значение. Есть идеи, как это упростить?

ВХОД:

new_guy_A <- assign('age_A', median(data_kids[gender=='muz',]$age)) %>%
   data.frame(age = age_A,
              height = age_A + rnorm(1, mean = 0, sd = std),
              gender = 'muz')

ВЫХОД:

        .      age   height gender
1 12.33566 12.33566 13.95272    muz

Спасибо!

1 Ответ

1 голос
/ 19 марта 2020

Код вопроса выглядит следующим образом:

library(dplyr)

std <- 1

data_kids %>%
  filter(gender == 'muz') %>%
  summarise(age_A = median(age),
            height = age_A + rnorm(1, sd = std),
            gender = first(gender))
#  age_A   height gender
#1    14 14.42912    muz

Тестовые данные.

set.seed(1234)
data_kids <- data.frame(age = sample(10:18, 4),
                        gender = rep(c('muz', 'baz'), 2))
...