我加载了一个rda文件,该文件基本上是一个数据帧列表。 如何遍历对象?
>load(data)
>attach(data)
The following objects are masked _by_ .GlobalEnv:
GSE109597, GSE18897, GSE32575, GSE53232, GSE55205, GSE69039,
GSE83223, GSE87493, GSE98895
> R » objects()
[1] "GSE109597" "GSE18897" "GSE32575" "GSE53232" "GSE55205" "GSE69039"
[7] "GSE83223" "GSE87493" "GSE98895"
答案 0 :(得分:3)
两个想法:
显式加载到新的空环境中,然后在此处进行处理:
e <- new.env(parent = emptyenv())
load(filename, envir = e)
out <- eapply(e, function(x) {
# do something with x
})
从?load
返回“创建的对象名称的字符向量,不可见”。。如果捕获(不可见的)矢量,则应该可以执行以下操作:
nms <- load(data)
for (nm in nms) {
x <- get(nm)
# do something with x
# optional, save it back with assign(nm, x)
}
# or to capture all data into a list (similar to bullet 1 above)
out <- lapply(lapply(nms, get), function(x) {
# do something with x
})
出于某些原因,我更喜欢第一个(基于环境的)解决方案:
.GlobalEnv
中的任何内容……了解到有时候不可复制的问题很难解决,这对我来说是巨大的.rda
文件中的大多数或全部对象都是相同的“事物”(例如,框架,列表)并且我计划这样做时,这一点尤为重要。他们每个人都采取相同的行动