这是一个与我之前的两个问题相关的问题: https://stackoverflow.com/questions/37996470/how-to-map-a-function-recursively-through-nested-lists-in-r,和 https://stackoverflow.com/questions/37906958/how-to-combine-rapply-and-mapply-or-how-to-use-mapply-map-recursively ,除了现在我要求更多的花里胡哨......
所以我有多个嵌套列表:
A = list(list(list(c(1,2,3), c(2,3,4)),list(c(1,2,3),c(2,3,4))), list(c(4,3,2), c(3,2,1)))
B = list(list(list(c(1,2,3), c(2,3,4)),list(c(1,2,3),c(2,3,4))), list(c(4,3,2), c(3,2,1)))
我想以递归方式将函数应用于A
和B
中的相应列表。如果该函数仅将A
和B
的子列表作为参数,根据我之前问题的优秀答案,可以这样做:
recursive <- function(fun, x, y) {
if(is.atomic(x) && is.atomic(y)) {
match.fun(fun)(x, y)
} else {
Map(recursive, x, y, MoreArgs=list(fun=fun))
}
}
现在我想知道如何在A
和B
的不同子列表中添加更多不变的参数?例如,我的功能可能是
formula = function(sublistA, sublistB, arg1, arg2){return(arg1*sublistA+arg2*sublistB)}
我认为可能从上面改编的递归函数可能看起来像
recursive <- function(fun, x, y, a, b) {
if(is.list(a) && is.list(b)){
}...
}
并且我们可以使递归函数灵活地关于结构化列表的数量,例如x
和y
以及常量的数量(可以是矩阵,向量,列表,只要不包括在内递归)如a
和b
?
非常感谢任何指导。
答案 0 :(得分:0)
我自己弄清楚了......相当愚蠢的问题本身。
只需编写包含常量的函数......