Недавно я наткнулся uppon проблемы, когда мне нужно CompAir попарных различий типов:«внешняя» операция с использованием dplyr/tidyr/purrr?
sometypes <- data.frame(id = rep(1:3, 2),
type = paste0("t", 1:6),
value1 = rnorm(6),
value2 = rnorm(6))
Здесь я хотел бы, чтобы вычислить разницу между значению1 и значение2 в зависимости от их типа. Я понял, использовать inner_join
:
#library(dplyr)
inner_join(select(sometypes, - value2),
select(sometypes, - value1), by = c("id")) %>%
mutate(difference = value1 - value2)
Поскольку I фактический пример у меня есть цепь команд до и после этого, я хотел бы, чтобы эффективно использовать оператор %>%
в:
# ... imagine some operators before
sometypes %>%
(function(ds) inner_join(select(ds, - value2),
select(ds, - value1),
by = c("id"))) %>%
mutate(difference = value1 - value2)
# ... imagine many operators afterwards
.. ., и я хотел бы знать, если есть более краткий способ описать это, и есть ли другие consice решить эту проблему в dplyr
(возможно, с помощью map2_df
из purrr
, но как?)
любая причина для нисходящего потока? – Drey