gpt4 book ai didi

R:将嵌套的for循环转换为应用函数

转载 作者:行者123 更新时间:2023-12-04 02:37:39 25 4
gpt4 key购买 nike

这是我的最小示例:

calA_fun <- function(list_A){
for (k in 1:length(list_A)){
out_level = list()
out_level[[k]] <- unlist( lapply(list_A[[k]], sqrt) )
for (j in 1:length(list_A[[k]]) ){
out_level_level = list()
out_level_level[[j]] <- lapply(list_A[[k]][[j]], function(x) x+ out_level[[k]] )
print(out_level_level[[j]])
}
}
}
list_A <- list(aa = c(1, 2, 4), bb = c(6,2))
calA_fun(list_A)

我正在使用 apply() 系列或 map() 重写此函数以替换 for 循环,但我不知道是否可行,因为 j 嵌套在 k 中,因此它是一个层次结构。

谢谢!

最佳答案

我们可以使用专为此任务构建的rapply(递归应用)。

使用@Marcelo Fernando Befumo 的数据

rapply(xx, sum)
# aa bb cc.a2 cc.b2 cc.a3 cc.b3
# 45 145 110 0 275 54

或者如果你想输出为列表

rapply(xx, sum, how = "list")

#$aa
#[1] 45

#$bb
#[1] 145

#$cc
#$cc$a2
#[1] 110

#$cc$b2
#[1] 0

#$cc[[3]]
#$cc[[3]]$a3
#[1] 275

#$cc[[3]]$b3
#[1] 54

关于R:将嵌套的for循环转换为应用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60921561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com