R Mapply函数覆盖tibbles列表,其中每个tibble循环遍历第二个数据帧中的变量

R Mapply function over list of tibbles, where each tibble loop over variables in second dataframe

我有一个类似于回归的函数,我想 运行 使用列表 x 中的每个小标题来预测小标题 y 中的每个变量(即,不是列表)。我使用的格式是:

mapply(FUN, x, y, SIMPLIFY= TRUE)

但是,如果 x 包含两个 tibbles(Tibble1 和 Tibble2)的列表; y包括两个变量(V1和V2);我想有 4 个不同的输出,但我只得到 2 个。

也就是说,我希望 Tibble1 数据产生两个单独的结果,一个用于 V1,一个用于 V2,然后 Tibble2 两个为 V1 和 V2 产生单独的结果。 这有意义吗?

我们可以使用map2

library(purrr)
map2(list(Tibble1, Tibble2), list(V1, V2), yourfun)

或者用Map

Map(yourfun, list(Tibble1, Tibble2), list(V1, V2))

我很难得到@akrun 的答案;但是根据@Onyambu 的评论,我终于解决了我的问题,希望能帮助到其他人:

# Get variable names in list y
variables <- dput(names(y))
# Duplicate variables names in y to as many different objects in list x
variables <- rep(variables, length(x))
# Create dataframe with duplicated variables
y <- y[c(variables)]
# Order columns alphabetically
y <- y[,order(colnames(y))]

output <- mapply(myFUN, x, y, SIMPLIFY=FALSE)