2017-10-06 76 views
0

我想在循环中创建多个数据帧(在R中)并且每个数据帧的名称由名称+循环索引组成。例如:在循环中创建多个数据帧(在R中)

B1,B2,B3,...,B10 1至10是环指标

现在,我要访问这些dataframes就是调用毕时,它会显示其内容。 例如:

for (i in 1:10) { 
compare (Bi $ label, test $ label) 
} 

我已经运行中的R下面的代码,但在接下来的步骤我无法使用dataframes

 > for(i in 1:4){ 
+ df.name<-paste("B",i) 
+ df.name[i]<-i+1 
+ print(df.name[i])} 

我怎样才能做到这一点? 感谢您的帮助

+5

您需要使用'assign',但这不是个好主意,请创建'data.frames'列表而不是 –

+0

是否有[这些选项](https://www.google.no/search?q= r + loop + list + data.frame&gws_rd = cr&dcr = 0&ei = KN7XWf_PBYv36ASN2aWwDQ)help? – AkselA

+0

制作一个[数据框列表(点击链接)](https://stackoverflow.com/a/24376207/903061),你的列表可以命名为'B',你可以访问'B [[1]]' ,B [[7]]等。 – Gregor

回答

0

也许你会制作一个data.frames列表。比使用data.frames创建大量变量更安全,并且更加有组织。

ls<-list() 

因此,您可以将date.frames存储在列表中,并在需要时调用它们。

ls[1]<-df1 
ls[2]<-df2 
. 
. 
. 
ls[x]<-dfx 

#Calling one of the data.frames in the list 
>ls[3] 
    # Will show the third data.frame that you put there. 

如果您有一些方法可以生成多个数据框,您可以使用循环将它们存储在此列表中,如上所述。

for(i in 1:number of data.frames){ 
    ls[i]<-df 
} 

我希望能帮到你。

问候。