2011-12-06 34 views
12

Tôi đã cố gắng chọn các hàng dựa trên ID của chúng. Ví dụ: trong khung dữ liệu có tên là test, ID 201 có 6 hàng dữ liệu, ID 202 cũng có 6 hàng dữ liệu và 203, 204 ..... v.v.Chọn nhiều hàng điều chỉnh trên ID trong R

Bây giờ tôi chỉ muốn trích xuất 201 và 202 từ tập dữ liệu, vì vậy nó phải có 12 hàng hoàn toàn. Tuy nhiên

out <- test[test$ID==c(201,202), ] 
out <- subset(test, ID==c(201,202)) 

chỉ trả ba 201 và ba 202, đó là Row 1, Row 3, Row của 5 8 10 12.

bất cứ ai có thể cung cấp một số ý kiến ​​cho rằng làm thế nào tôi có thể làm điều này trong R?

+3

Trong trường hợp bạn tự hỏi * tại sao * bạn có những gì bạn đã làm, '==' so sánh yếu tố khôn ngoan và tái chế một vectơ nếu nó hết. Vì vậy, nó chỉ luân phiên kiểm tra cột ID với 201 và 202. Câu trả lời '% in%' là tốt nhất, nhưng bạn cũng có thể đã sử dụng 'tập con (test, ID == 201 | ID == 202)' – Gregor

Trả lời

21

Bạn muốn %in%, không phải ==.

out <- test[test$ID %in% c(201, 202), ] 
out <- subset(test, ID %in% c(201, 202)) 
+0

Cảm ơn bạn rất nhiều . – Fred

+0

@MattDowle đây là một ứng cử viên tuyệt vời cho các họa tiết data.table-giới thiệu hoặc có lẽ là câu hỏi thường gặp! Tôi chắc chắn đã bước vào mỏ đất này cuối tuần trước. –

Các vấn đề liên quan