Я не был уверен, пытались ли вы автоматизировать только определенные группы или были доступны все сравнения (в этом случае вы можете выполнить конвейерную обработку, чтобы получить любую потенциальную группировку). Мне нравится элегантное матричное решение @JDL, поэтому я взял его и просто добавил немного вроде очистки имен переменных с помощью janitor
и некоторой группировки
library(tidyverse)
require(janitor)
M <- outer(starwars$height,
starwars$height,
"-")
rownames(M) <- colnames(M) <- starwars$name
new_starwars <- janitor::clean_names(as_tibble(cbind(starwars, M)))
# glimpse(new_starwars)
new_starwars %>%
mutate(heightminusYoda = yoda) %>%
filter(name %in% c("Luke Skywalker", "Anakin Skywalker", "R5-D4")) %>%
select(name, heightminusYoda)
#> # A tibble: 3 x 2
#> name heightminusYoda
#> <chr> <int>
#> 1 Luke Skywalker 106
#> 2 R5-D4 31
#> 3 Anakin Skywalker 122
Создано 06.05.2020 пакет REPEX (v0.3.0)