2014-12-07 116 views
0

我创建了一系列按顺序排列的数据帧(例如,df1,df2,df3,df4,...)。我已经退出这些数据帧一起放入一个列表(ldf)和现在要创建一个变量(z),其设有与每个数据帧相关联的号码,例如,对于元件df1ldf可变z将等于1,而z = 2df2ldfR - 基于序列在数据帧列表中创建变量

在现实中我有几千个数据帧,但作为一个例子,我总结了以下代码来构建数据帧,并将其包装成一个列表:

for (i in 1:4) { 
    assign(paste0('df', i), data.frame(x = rep(1:100), 
            y = seq(from = 1, 
              to = 1000, 
              length = 100))) 
} 

ldf <- list(df1, df2, df3, df4) 

中借鉴其他一些代码thread,我试图创建变量z用:

ldf <- lapply(ldf, function(x) { 
    x$z = seq(1:4) 
    return(x) 
}) 

不足为奇的是,这只是循环1-4重复在100周的观察中的每个数据帧,而不是用于分配1df1,2对于df2,3对于df34对于df4(根据我的意愿)。

如果任何人更熟悉名单可以帮助我解决这个问题,我会非常感激。

回答

2

如果要同时迭代两个列表/矢量,可以使用mapply()Map。这是使用后者的代码

Map(function(x,z) cbind(x,z=z), ldf, 1:4) 
0

这是否解决了请求?

ldf$z <- seq_along(ldf)