gpt4 book ai didi

r - 使用 mapply 保存时保留列表元素的名称

转载 作者:行者123 更新时间:2023-12-05 00:18:53 25 4
gpt4 key购买 nike

我正在使用 mapply() 将列表中的元素保存在单独的文件中。例如。

file.names <- c('~/a.RData', '~/b.RData')
data.list <- list(foo = c(1:10), bar = rep(1, 10))

mapply(function(x, y) save(x, file = y), data.list, file.names)

并且我希望在再次加载元素后能够使用它们的原始名称来调用它们。现在我明白了

load('~/a.RData')
ls()
"x"

但我想得到

load('~/a.RData')
ls()
"foo"

最佳答案

好问题,这可能不是理想的答案。无论如何,一种可能性是将列表用作环境并将其与 save() 中的 list 参数结合使用。这里的关键是正确排序,因为 ls() 对其输出进行排序。 with() 从列表中创建环境,因此我们可以轻松使用 list 参数。

with(data.list, {
mapply(
function(x, y) save(list = x, file = y),
ls()[order(names(data.list))],
file.names
)
})
# $foo
# NULL
#
# $bar
# NULL

检查:

load('~/a.RData')
ls()
# [1] "data.list" "f" "file.names" "foo"
load('~/b.RData')
ls()
# [1] "bar" "data.list" "f" "file.names" "foo"
foo
# [1] 1 2 3 4 5 6 7 8 9 10
bar
# [1] 1 1 1 1 1 1 1 1 1 1

关于r - 使用 mapply 保存时保留列表元素的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39419950/

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