У меня есть пара информационных фреймов и такой вектор:
set.seed(420)
df1 <- data.frame(matrix(rexp(50), nrow = 10, ncol = 5))
names(df1) <- paste0(rep("variable_", 5), 1:5)
df2 <- data.frame(matrix(rexp(50), nrow = 10, ncol = 5))
names(df2) <- paste0(rep("variable_", 5), 1:5)
vector1 <- data.frame(variable_a = rexp(10))
Я хотел бы взять функцию, которая перебирает столбцы и строки всех трех моих объектов. Но кажется, что и mapply
, и pmap
принимают только столбцы в качестве входных данных, и мне нужно сделать вложенную функцию, чтобы получить то, что я хочу:
#function
simple_function <- function(x,y,z) {
sum((x + y) ^ z)
}
# nested map - quite ugly
map_dfc(1:5, function(n) {
pmap(list(df1[n], vector1, df2[n]), simple_function)
})
Что дает мне необходимый вывод, как показано ниже:
# A tibble: 1 x 5
X1 X2 X3 X4 X5
<dbl> <dbl> <dbl> <dbl> <dbl>
1 57.3 29.3 25.3 51.0 37.8
Есть ли способы переписать функцию карты, чтобы избежать вложения?