Giả sử tôi có vectơ sau:Tìm Nhiều yếu tố trong một Vector
> x <- sample(1:10,20,replace=TRUE)
> x
[1] 8 6 9 9 7 3 2 5 5 1 6 8 5 2 9 3 5 10 8 2
Làm thế nào tôi có thể tìm thấy trong đó yếu tố này là một trong hai 8 hoặc 9?
Giả sử tôi có vectơ sau:Tìm Nhiều yếu tố trong một Vector
> x <- sample(1:10,20,replace=TRUE)
> x
[1] 8 6 9 9 7 3 2 5 5 1 6 8 5 2 9 3 5 10 8 2
Làm thế nào tôi có thể tìm thấy trong đó yếu tố này là một trong hai 8 hoặc 9?
Đây là một cách để thực hiện. Đầu tiên tôi nhận được các chỉ số mà tại đó x là một trong hai 8 hoặc 9. Sau đó, chúng ta có thể xác minh rằng ở những chỉ số, x thực sự là 8 và 9.
> inds <- which(x %in% c(8,9))
> inds
[1] 1 3 4 12 15 19
> x[inds]
[1] 8 9 9 8 9 8
Ngoài ra, nếu bạn không cần phải sử dụng các chỉ số nhưng chỉ các yếu tố bạn có thể làm
> x <- sample(1:10,20,replace=TRUE)
> x
[1] 6 4 7 2 9 3 3 5 4 7 2 1 4 9 1 6 10 4 3 10
> x[8<=x & x<=9]
[1] 9 9
bạn có thể thử các nhà điều hành |
cho điều kiện ngắn
which(x == 8 | x == 9)
grepl
có thể là một chức năng hữu ích. Lưu ý rằng grepl
xuất hiện trong các phiên bản R 2.9.0 trở lên. Những gì tiện dụng về grepl
là nó trả về một vector hợp lý có cùng độ dài như x
.
grepl(8, x)
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[13] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
grepl(9, x)
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
[13] FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
Để đi đến câu trả lời của bạn, bạn có thể làm như sau
grepl(8,x) | grepl(9,x)
Tôi thích grepl, tốt cho lọc dataframes trên chuỗi văn bản, v.v. Cảm ơn ví dụ OR - Tôi nghĩ nó sẽ đơn giản , nhưng tôi tiếp tục cố gắng '|| 'là cú pháp sai. – atomicules
Đây là một giải pháp rất nguy hiểm. 'grepl (9, c (9, 99, 654649))' sẽ trả về 'TRUE' cho tất cả những cái này. Người ta phải rất cẩn thận với các trận đấu chính xác và regex. –
Nhưng giả sử tôi đang tìm kiếm các chỉ số cụ thể của hai giá trị mà không cần lệnh của họ được sắp xếp. Làm thế nào tôi sẽ nhận được kết quả của "26, 1" thay vì "1, 26" nếu tôi đang tìm kiếm các chỉ mục của Z và A trong bảng chữ cái? _which (chữ% trong% c ('z', 'a')) _ – dasf