如何导入具有相同名称的R数据集

时间:2014-01-28 15:30:28

标签: r import load

我有三个数据集保存在R格式A.RData,B.RData,C.RData(每个大小~2Gb)。每个文件包含三个变量X,Y,Z。

我无法在不首先重命名变量的情况下加载A.RData和B.RData。由于数据集很大,所以这些步骤:

load("A.RData")
A = list(X=X,Y=Y,Z=Z)
rm(X,Y,Z)

load("B.RData")
B = list(X=X,Y=Y,Z=Z)
rm(X,Y,Z)

需要一些时间。

有没有办法直接在列表A中导入A.RData中的数据,而不必复制变量?

2 个答案:

答案 0 :(得分:1)

是的,有。

A <- new.env()
load('A.RData', envir=A)
A <- as.list(A)

答案 1 :(得分:0)

Matthew Plourde提供的解决方案是可行的方法。将来,如果您使用saveRDS(而非save)保存数据,则可以避免这些问题。

函数saveRDS保存单个对象。例如:

X <- 1
Y <- 2
Z <- 3

# put the objects in a list
mylist <- list(X, Y, Z)

# save the list
saveRDS(mylist, file = "myfile.rds")
rm(X, Y, Z, mylist) # remove objects (not necessary)

# load the list
newlist <- readRDS("myfile.rds")
# [[1]]
# [1] 1
# 
# [[2]]
# [1] 2
# 
# [[3]]
# [1] 3

save相反,对象的名称​​不存储。因此,您可以将readRDS的结果分配给另一个名称。请注意,您必须将所有变量放在 one 列表中。