gpt4 book ai didi

r - 如何在列表中重叠到列表的子元素

转载 作者:行者123 更新时间:2023-12-04 17:11:00 25 4
gpt4 key购买 nike

假设我有一个 列表嵌套在列表中 我有一些只适用于向量的函数(比如 stringr 包中的 str_replace )。 函数应该对每个元素都做它的工作 这实际上需要信息,...

问题一:我的问题有具体的解决方案吗?
问题2:有没有通用的解决方案?

应该有一个使用循环的解决方案,但这几乎是优雅的,而且可能非常慢——效率确实在这里发挥了作用。

让我们有一个 示例 :

# let's start easy:
test1 <- list(c("a","d"),c("b","d"),c("c","d"))

# does not work:
str_replace(test1,"d","changed")

# but this does:
lapply(test1,str_replace,"d","changed")

# but what now ?
test2 <- list(c(list("a"),"d"),c("b","d"),c("c","d"))

# does not work! :-(
lapply(test2,str_replace,"d","changed")

最佳答案

这是为此使用 rapply 的方法。请注意 ... 在 rapply 定义中的位置 - 这在 dflt 之后和 how .出于这个原因,我们将参数命名为 str_replace:

rapply(test,str_replace,pattern="d",replacement="changed",how='replace')

[[1]]
[[1]][[1]]
[1] "a"

[[1]][[2]]
[1] "changed"


[[2]]
[1] "b" "changed"

[[3]]
[1] "c" "changed"

关于r - 如何在列表中重叠到列表的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13544249/

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