Đối với danh sách ví dụ của bạn, bạn chỉ có thể làm:
unlist(x)[ c(TRUE,FALSE) ]
nhưng điều đó phụ thuộc vào mỗi danh sách con có chính xác 2 phần tử.
Nếu có số lượng phần tử khác nhau thì trước tiên bạn có thể thực hiện sapply
phép tính độ dài, sau đó tính vị trí phần tử thứ nhất tương ứng (xem cumsum
), sau đó chọn các giá trị đó từ unlist
danh sách chỉnh sửa. Nhưng đến lúc đó câu trả lời được chấp nhận có lẽ đơn giản hơn nhiều.
Nếu tất cả các danh sách con có cùng độ dài (nhưng có thể khác 2) thì bạn có thể làm như sau:
do.call( rbind, x)[,1]
hoặc một số đúc khác đến một đối tượng chung. Nhưng tôi nghi ngờ rằng điều này sẽ hiệu quả như lapply
cách tiếp cận.