Может ли dplyr mutate () создать новый элемент из существующего элемента? - PullRequest
0 голосов
/ 04 ноября 2018
# A tibble: 4 x 4
      x     n lag_x     y
  <dbl> <dbl> <dbl> <dbl>
1    20   100     0    20
2    30   100    20    10
3    58   100    30    28
4   100    NA    58    42

Могу ли я создать новый тиббл из существующего тиббл? Все в одной длинной трубе %>%? Я хочу взять этот кадр данных выше и повторять каждый номер строки y раза. Но мой код для создания тиббла, из тиббла не работает. Все строки ниже работают, кроме трех последних, которые я закомментировал. Какая из этих трех последних является лучшей идеей и как правильно ее написать?

library(tidyverse)
mytibble <- tibble(mytibble = rnorm(100))
x <- c(0, 20, 30, 58)
n <- 100
newcolumn <- data_frame(x, n) %>%
  distinct() %>%
  filter(x >= 0 & x < n) %>%
  arrange(x) %>%
  bind_rows(data_frame(x = n)) %>%
  mutate(lag_x = lag(x)) %>%
  mutate(y = x - lag_x) %>%
  filter(!is.na(y)) %>%
  # transmute(grp = rep(row_number(), y))
  # {transmute(grp = rep(row_number(), y))}
  # tibble(grp = transmute(grp = rep(row_number(), y)))

Конечным выводом должен быть столбец, который я могу преобразовать (или объединить) в совершенно отдельный фрагмент, в данном случае mytibble. Я нашел способ сделать это путем 'list ing' и 'un list ing' данных, но это не может быть лучшим способом?

# it would be something like this
summarise(n = list(rep(row_number(), y))) %>%
unnest(n) %>% 
rename(grp = n)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...