Как использовать функцию mutate с циклами в R? - PullRequest
0 голосов
/ 22 января 2020

Я новичок в R.

Я изменяю 20 или более переменных, как показано ниже.

raw.data <- raw.data %>% 
  mutate(c_time = (c_time_2_1*60 + c_time_2_2) - (c_time_1_1*60 + c_time_1_2),
         m1_time = (m1_time_2_1*60 + m1_time_2_2) - (m1_time_1_1*60 + m1_time_1_2),
         m2_time = (m2_time_2_1*60 + m2_time_2_2) - (m2_time_1_1*60 + m2_time_1_2), 
         q_time = (q_time_2_1*60 + q_time_2_2) - (q_time_1_1*60 + q_time_1_2), 
         ...
         )

Как я могу использовать l oop (что бы ни было для -l oop или карта или другое) список ниже в функции mutate.

keys = c('c', 'm1', 'm2', 'm3', ... , 'm20', 'q', 'qpi', 'qsp', 'qpss', ... )

1 Ответ

0 голосов
/ 22 января 2020

Мы можем попробовать нестандартную оценку:

library(dplyr)
library(rlang)

bind_cols(raw.data, purrr::map_dfc(keys, ~transmute(raw.data, 
!!.x := !!sym(paste0(.x, '_time_2_1')) *60 + !!sym(paste0(.x, '_time_2_2')) - 
        !!sym(paste0(.x, '_time_1_1'))*60 + !!sym(paste0(.x, "_time_1_2")))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...