将函数应用于列表后保留列表元素的名称
Keep list's elements' names after applying a function to the list
list1
包含几个方阵,每个都这样命名
$name1
[,1] [,2] [,3] [,4] [,5]
[1,] 0.1997578 0.0000 0.0000 0.0000 0.0000
[2,] 0.0000000 0.2025 0.0000 0.0000 0.0000
我将 eigen.analysis
应用到 list1
,然后元素名称在结果中消失了 (list2
)。因此,在元素顺序不变的假设下,我必须使用 list1
的名称重命名 list2
中的所有元素。如何修复我的代码以便跳过名称重新分配步骤?谢谢!
list2<- lapply(seq_along(list1), function(i){
eigen.analysis(list1[[i]])
})
names(list2) <- names(list1)
这是 list2
在 names()
命令之前的样子
[[1]]
[[1]]$lambda1
[1] 0.2025
我希望我的结果是
$name1
$name1$lambda1
[1] 0.2025
lapply(seq_along())
和lapply(names())
都让名字消失了
与其使用 lapply 将函数应用于 seq_along
的索引,不如将函数直接应用于 list1
:
list2<- lapply(list1, function(x){
eigen.analysis(x)
})
list2
如果你这样使用 lapply()
应该命名
list1
包含几个方阵,每个都这样命名
$name1
[,1] [,2] [,3] [,4] [,5]
[1,] 0.1997578 0.0000 0.0000 0.0000 0.0000
[2,] 0.0000000 0.2025 0.0000 0.0000 0.0000
我将 eigen.analysis
应用到 list1
,然后元素名称在结果中消失了 (list2
)。因此,在元素顺序不变的假设下,我必须使用 list1
的名称重命名 list2
中的所有元素。如何修复我的代码以便跳过名称重新分配步骤?谢谢!
list2<- lapply(seq_along(list1), function(i){
eigen.analysis(list1[[i]])
})
names(list2) <- names(list1)
这是 list2
在 names()
命令之前的样子
[[1]]
[[1]]$lambda1
[1] 0.2025
我希望我的结果是
$name1
$name1$lambda1
[1] 0.2025
lapply(seq_along())
和lapply(names())
都让名字消失了
与其使用 lapply 将函数应用于 seq_along
的索引,不如将函数直接应用于 list1
:
list2<- lapply(list1, function(x){
eigen.analysis(x)
})
list2
如果你这样使用 lapply()
应该命名