функция над несколькими рядами в таблице - PullRequest
1 голос
/ 22 февраля 2020

У меня есть следующие примеры данных:

library("tidyverse")
raw <- tibble(
  emp_name = c("john"),
  valid_from = c("2019-01-01"),
  valid_to =  c("2019-01-03")
)

Ниже код работает, когда у меня есть только одна строка в таблице:

raw <- raw %>% 
  mutate(periods =  paste(c(seq(from = as.Date(valid_from), to = as.Date(valid_to),by =  "days")), collapse = ', '))

Однако мне нужно использовать функцию, которая поддерживает больше строк.

1 Ответ

2 голосов
/ 22 февраля 2020

попробуй rowwise():

raw %>%
  rowwise() %>% 
  mutate(periods =  
           paste(c(seq(from = as.Date(valid_from), to = as.Date(valid_to),by =  "days")), collapse = ', '))

Source: local data frame [2 x 4]
Groups: <by row>

# A tibble: 2 x 4
  emp_name valid_from valid_to   periods                                                     
  <chr>    <chr>      <chr>      <chr>                                                       
1 john     2019-01-01 2019-01-03 2019-01-01, 2019-01-02, 2019-01-03                          
2 max      2019-01-02 2019-01-07 2019-01-02, 2019-01-03, 2019-01-04, 2019-01-05, 2019-01-06,~
...