gpt4 book ai didi

r - 使用 lapply 更改列表列表

转载 作者:行者123 更新时间:2023-12-04 09:33:29 24 4
gpt4 key购买 nike

我有一个结构相同的列表列表,我想更改第二层中每个列表的一个元素。换句话说,我有一个包含对象 x、y 和 z 的列表。此列表在另一个列表中重复多次。我需要更改每个列表中的 x。做这个的最好方式是什么?

我目前的方法是创建一个小函数来执行我想要的更改,然后重新创建列表。但是有些事情让我觉得有更简单的方法来做到这一点?

下面的代码展示了我的方法,这对我的玩具示例来说很好 - 但对象的真实上下文更复杂,所以考虑到我只更改一个值,我真的不想多次重新创建它。我可以这样做,只是感觉很复杂。

l = list(x = 1:3, y = "a", z = 9)
test = list(l, l, l)

standardize = function(obj){
obj$x = obj$x / max(obj$x)
list(obj$x, obj$y, obj$z)
}

lapply(test, function(e) standardize(e))

最佳答案

只需返回修改后的 obj 而不是重新创建列表。

standardize = function(obj){
obj$x <- obj$x / max(obj$x)
obj
}

好处:现在保留了 obj 元素的名称。

关于r - 使用 lapply 更改列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42490452/

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