2013-02-05 49 views
5

Tôi đã có một vector của chuỗiXác định Cột Index Kết hợp Với Vector của String

x<-c('a','b') 

và tôi có một ma trận với nhiều columnsl; có chứa tên trong vectơ đó của chuỗi. Tôi muốn lấy số cột/chỉ mục phù hợp với tên của họ.

which(colnames(sample_matrix) == x) 

Điều này hoạt động khi x không phải là một phần tử đơn lẻ. Bất kỳ giải pháp?

Trả lời

7

thử

which(colnames(sample_matrix) %in% x) 
1

gì bạn đang tìm kiếm là %in% như trong:

which(colnames(sample_matrix) %in% x) 

Hoặc cách khác, match

match(x, colnames(sample_matrix)) 
2

Ngoài ra:

grep("^a$|^b$", colnames(sample_matrix)) 

Sử dụng grep thường tổng quát hơn để kiểm tra sự hiện diện trong một chuỗi giá trị. Bạn có thể nhận tất cả các mục khớp với mẫu, nói tất cả các tên bắt đầu bằng "a".