繁体   English   中英

R function 循环遍历全局环境

[英]R function to loop through global environment

我的 class 数据框架的全局环境中有 70 多个对象,名称为 A、B、C、D 等。 每一个都有不同的行数和三列,其中第一个是日期。 我想将以下 function 应用于每个人:

A$date<-as.Date(A$date)
A.xts<-xts(A[,2:3], order.by = A$date)

有没有办法构造一个遍历全局环境中每个 object 的 for 循环?

谢谢

我们可以使用mget将所有对象放入一个list中(假设我们正在从工作空间加载所有对象并且都是 data.frames),然后应用 function

library(xts)
lst1 <- lapply(mget(ls()), f1)

注意:在ls中,我们也可以传递patterns 假设,如果数据集对象被命名为“df1”、“df2”等

lst1 <- lapply(mget(ls(pattern = '^df\\d+$')), f1)

如果我们真的想创建多个对象,请使用list2env (不推荐)

names(lst1) <- paste0(names(lst1), '_new')
list2env(lst1, .GlobalEnv)

在哪里

f1 <- function(x) { x$date <- as.Date(x$date)
              xts(x[,2:3], order.by = x$date)
            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM