gpt4 book ai didi

r - 从 Rdata 文件中获取特定对象

转载 作者:行者123 更新时间:2023-12-03 06:05:12 26 4
gpt4 key购买 nike

我有一个包含各种对象的Rdata文件:

 New.Rdata
|_ Object 1 (e.g. data.frame)
|_ Object 2 (e.g. matrix)
|_...
|_ Object n

当然,我可以使用 load('New.Rdata') 加载数据框,但是,是否有一种聪明的方法可以从此文件中仅加载一个特定对象并丢弃其他对象?

最佳答案

.RData 文件没有索引(内容被序列化为一个大的对列表)。您可以破解一种方法来遍历配对列表并仅分配您喜欢的条目,但这并不容易,因为您无法在 R 级别执行此操作。

但是,您可以简单地将 .RData 文件转换为延迟加载数据库,该数据库单独序列化每个条目并创建索引。好处是加载将按需进行:

# convert .RData -> .rdb/.rdx
e = local({load("New.RData"); environment()})
tools:::makeLazyLoadDB(e, "New")

加载数据库仅加载索引,但不加载内容。内容在使用时加载:

lazyLoad("New")
ls()
x # if you had x in the New.RData it will be fetched now from New.rdb

就像使用 load() 一样,您可以指定要加载的环境,这样您就不需要污染全局工作区等。

关于r - 从 Rdata 文件中获取特定对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8700619/

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