R函数可遍历全局环境

问题描述 投票:0回答:1

我在类data.frame的全局环境中有70多个对象,名称分别为A,B,C,D等。每一个都有不同的行数和三列,其中第一个是日期。我想对他们每个人应用以下功能:

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

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

谢谢

r loops dataframe xts
1个回答
0
投票

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

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

注意:在ls中,我们也可以通过patterns。假设,如果数据搜索对象被命名为“ df1”,“ df2”,等等

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

where

f1 <- function(x) { x$date <- as.Date(x$date)
              xts(x[,2:3], order.by = x$date)
            }
© www.soinside.com 2019 - 2024. All rights reserved.