Tôi có một vấn đề khi kết hợp các vectơ sau đây có trong danh sách:làm thế nào để kết hợp vectơ với độ dài khác nhau trong một danh sách trong R?
x <- list(as.numeric(c(1,4)),as.numeric(c(3,19,11)))
names (x[[1]]) <- c("species.A","species.C")
names (x[[2]]) <- c("species.A","species.B","species.C")
mang đến cho các danh sách sau:
>x >[[1]] >species.A species.C > 1 4 >[[2]] >species.A species.B species.C > 3 19 11
kết hợp chúng bằng cách sử dụng chức năng do.call: y<- do.call(cbind,x)
cung cấp:
>y > [,1] [,2] > species.A 1 3 > species.B 4 19 > species.C 1 11
trong khi tôi muốn có được điều này:
> [,1] [,2] > species.A 1 3 > species.B NA 19 > species.C 4 11
Could in-line phân x2, và đơn giản hóa nó như là 'do.call (cbind, lapply (x, '[', spp))' –
Tôi đã phá vỡ nhiệm vụ, và làm cho định nghĩa FUN rõ ràng hơn vì mục đích rõ ràng, vì tôi nghĩ công bằng để kết luận rằng OP là một người mới tương đối. Nhưng có, tất cả điều này có thể được thực hiện trong một dòng duy nhất. Trong thực tế, tôi cũng có thể thêm rằng như là một chỉnh sửa nhanh chóng. Cảm ơn. –
Khá hợp lý; Tôi chỉ đang chỉ ra một giải pháp thay thế. –