Мутация текста с помощью функции в dplyr

Я пытаюсь использовать функцию для изменения столбца с помощью dplyr.

Данные для репликации:

dates<-tbl_df(data.frame(Dates=c(as.Date("2002-12-31"),as.Date("2003-01-31"))))

Функция:

getfilename <- function(date) str_c("EQS_",format(date, format="%Y%m%d"),".csv")

код dplyr:

expected<-dates %>%   rowwise() %>%  mutate(filenames=getfilename(Dates))

Ожидаемый результат: добавлен столбец, содержащий:

"EQS_20021231.csv"
"EQS_20030231.csv"

Спасибо за любую помощь!


person csrvermaak    schedule 13.11.2015    source источник


Ответы (1)


Вы очень близки. Функция объединения строк - paste0. Кроме того, вам не нужен вызов rowwise. Функция mutate всегда работает построчно.

dates <- tbl_df(data.frame(Dates=c(as.Date("2002-12-31"),as.Date("2003-01-31"))))
getfilename <- function(date) paste0("EQS_",format(date, format="%Y%m%d"),".csv")
expected <- dates %>% mutate(filenames=getfilename(Dates))
person drhagen    schedule 13.11.2015
comment
Спасибо, drhagen, очень признателен. Я недоумеваю, почему str_c () не сработала? str_c () - это обертка вокруг paste, а paste0 - это просто вставка с sep =. Любые идеи? - person csrvermaak; 13.11.2015
comment
str_c не является функцией в базе R. Это функция в пакете stringr. - person drhagen; 13.11.2015
comment
Ха, если я загружаю str_c из stringr, он все равно не работает. Я не совсем уверен, зачем читать документы, но опять же, я никогда не использовал эту функцию, поэтому я не уверен, для чего она нужна. - person drhagen; 13.11.2015
comment
Проблема устранена здесь, требуется обновление пакета stringi. - person csrvermaak; 13.11.2015