Я изо всех сил пытаюсь понять, как использовать purr::map2 для создания нескольких таблиц с использованием двух разных списков столбцов в фрейме данных. Цель двоякая: 1) определить, чем отличаются столбцы.
Ниже приведен пример игрушечного фрейма данных, с которым я работаю (фактический фрейм данных имеет около 300 столбцов, из которых мне интересно сравнить 100 пар, то есть 200.
df = data.frame(a = c(1, 2, 3), b = c(2,3,8), a1 = c(1, 2, 3), b1 = c(2, 3, 9))
a b a1 b1 ….
1 1 2 1 2
2 2 3 2 3
3 3 8 3 9
Я понимаю, что есть несколько способов выполнить мою задачу. Как я уже сказал, моя первоначальная идея состояла в том, чтобы перебрать несколько столбцов, используя мурлыканье, а затем создать список таблиц.
names1 <- c("a", "b")
names2 <- c("a1", "b2")
df %>% purr::map2(~table(.$names1, .$names2, useNA = "always))
Я ожидаю, что список будет выглядеть примерно так, как показано ниже.
1 2 3 <NA>
1 1 0 0 0
2 0 1 0 0
3 0 0 1 0
<NA> 0 0 0 0
2 3 9 <NA>
2 1 0 0 0
3 0 1 0 0
8 0 0 1 0
<NA> 0 0 0 0
Вместо этого я получаю следующую ошибку:
Error in as_mapper(.f, ...) : argument ".f" is missing, with no default
tidyr::gather()
. Тогда вы сможете выполнять такие действия, как выбор и фильтрация по различным полям данных. Это может помочь! - person Jacqueline Nolis   schedule 07.08.2019