2012-10-25 57 views
5

Tôi biết đây là câu hỏi thực sự nhưng tôi làm cách nào để thêm một danh sách các khung dữ liệu vào một khung dữ liệu để tạo danh sách mới, với tất cả data.frames ở cùng cấp trong danh sách?chắp thêm danh sách vào danh sách

Một số nỗ lực của tôi:

> df <- data.frame(time=1:5) 
> df 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 
> innerlist <- list(df,df,df) 
> innerlist 
[[1]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[2]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[3]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

> outerlist <- list(df,innerlist) 
> outerlist 
[[1]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[2]] 
[[2]][[1]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[2]][[2]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[2]][[3]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 


> outerlist2 <- c(df,innerlist) 
> outerlist2 
$time 
[1] 1 2 3 4 5 

[[2]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[3]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[4]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

> outerlist3 <- cbind(df,innerlist) 
> outerlist3 
    time time time time 
1 1 1 1 1 
2 2 2 2 2 
3 3 3 3 3 
4 4 4 4 4 
5 5 5 5 5 

Giả vờ rằng tất cả các df s khác nhau dữ liệu khung.

Tôi muốn thêm df để innnerlist, và có được một danh sách với 4 dfs, như:

> outerlistmagic <- magic(df, innerlist) 
> outerlistmagic 
[[1]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[2]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[3]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[4]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

Trả lời

4

Nếu bạn muốn df trở thành một yếu tố danh sách, bạn phải quấn nó trong list vì một dữ liệu. khung là một danh sách nội bộ. Ví dụ:

append(list(df), innerlist) 
c(list(df), innerlist) 
+0

Ah, siêu, cảm ơn! Và bạn đã giải thích lý do tại sao, vì vậy tôi hiểu ngay bây giờ. –

4

Khi bạn nhận ra, c là chức năng chính xác để kết hợp danh sách. Trong khi data.frame cũng là một danh sách, c sẽ xóa thuộc tính data.frame và thả nó vào danh sách chứa một vectơ. Bạn có thể bảo vệ điều này bằng cách gói nó trong danh sách khác:

c(list(df),innerlist) 
[[1]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[2]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[3]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 

[[4]] 
    time 
1 1 
2 2 
3 3 
4 4 
5 5 
Các vấn đề liên quan