2010-07-29 40 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 
...