2010-07-29 41 views
1

我有此数据帧添加到构造名

为(I在1:10)

和内它,我有一个数据帧: 例如

df<-1:100 

,我想数据帧分配到我想要创建

像一个特定的名称:(不,它的工作原理)

paste("name", variable[i])<- df 

编辑:

然后我将如何去访问另一个循环中的构造值(假设我使用了赋值)

datalist <- paste("a",1:100,sep="") 
    for (i in 1:length(datalist)){ 

} 

回答

7

我建议assign,如图所示这里:

for(i in 1:100){ 
    df <- data.frame(x = rnorm(10),y = rpois(10,10)) 
    assign(paste('df',i,sep=''),df) 
} 
+0

你知道我是如何将能够访问另一个循环的赋值? – 2010-09-09 10:29:36

+1

@Nathaniel'get(paste('df',i,sep =''))'但是如果你需要它,你可以用list来代替。 'list_of_df < - lapply(1:100,function(i)data.frame(...))'然后在另一个循环/ lapply中使用'list_of_df [[i]]''。 – Marek 2010-09-09 10:55:01

+0

@Marek哦很酷,谢谢! – 2010-09-10 07:25:57

0

你可以在你的循环的输出存储在一个列表:

set.seed(10) 
x = list() 

for(i in 1:10){ 
    x[[i]] <- data.frame(x = rnorm(100), y = rnorm(100)) 
    } 

然后x将是长度为10的列表,列表中的每个元素将是暗淡的C(100,2)

> length(x) 
[1] 10 
> dim(x[[1]]) 
[1] 100 2 
> 

当然,你能说出列表中的元素,以及:

names(x) = letters[1:10] 

x[["a"]] 


       x   y 
1 0.01874617 -0.76180434 
2 -0.18425254 0.41937541 
3 -1.37133055 -1.03994336 
4 -0.59916772 0.71157397 
5 0.29454513 -0.63321301 
6 0.38979430 0.56317466 
...