gpt4 book ai didi

r - 将列表名称传播到其内部向量的任何有效方法?

转载 作者:行者123 更新时间:2023-12-01 08:21:21 25 4
gpt4 key购买 nike

给定一个列表 lst <- list(a = 1:2, b = 3:5)看起来像

> lst
$a
[1] 1 2

$b
[1] 3 4 5

我要传名字 ab对于 lst$a 中的值和 lst$b , 使得
> lst
$a
a a
1 2

$b
b b b
3 4 5

我制作它的愚蠢代码如下所示:
lst[] <-lapply(seq(lst),function(k) lst[[k]] <- setNames(lst[[k]], rep(names(lst[k]),length(lst[[k]]))))

但我怀疑可能有其他更聪明、更优雅的方法来做到这一点。非常感谢您提前!

最佳答案

定义一个带有两个参数的自定义函数

f <- function(x, y) setNames(x, rep(y, times = length(x)))

并使用 Map
Map(f, lst, names(lst))

结果
#$a
#a a
#1 2
#
#$b
#b b b
#3 4 5

关于r - 将列表名称传播到其内部向量的任何有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59422745/

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