Tôi có hai chuỗi, a <- "AERRRTX"; b <- "TRRA"
.Trích xuất các ký tự riêng biệt khác nhau giữa hai chuỗi
tôi muốn trích xuất các ký tự trong a
không được sử dụng trong b
, tức là "ERX"
Tôi đã thử các câu trả lời trong Extract characters that differ between two strings, trong đó sử dụng setdiff
. Nó trả về "EX", bởi vì b
không có "R" và setdiff
sẽ loại bỏ tất cả ba "R" trong a
. Mục tiêu của tôi là để đối xử với mỗi nhân vật là khác biệt, vì vậy chỉ có hai trong số ba R trong a
nên được loại bỏ.
Bất kỳ đề xuất nào về những gì tôi có thể sử dụng thay vì setdiff
hoặc một số cách tiếp cận khác để đạt được kết quả đầu ra của tôi?
điểm nhỏ: Đó là khuyến khích để tránh gán 'c', vì nó là hàm dựng sẵn thường được sử dụng. Nếu 'c' là một biến được định nghĩa trong bất kỳ môi trường kèm theo nào, các tham chiếu đến từ định danh đó có thể liên kết với nó, điều này có thể làm hỏng rất nhiều mã. Ví dụ, 'do.call (c, ...)' không thành công trong trường hợp này. – bgoldst
@bgoldst bạn nói đúng. Đã cập nhật. Cảm ơn! –
Thay thế tốt. Bạn có thể thay thế dòng thứ ba bằng 'a1 [-pmatch (b1, a1)]'. Ngoài ra, sẽ hữu ích khi lưu ý đối số "duplicateates.ok = FALSE" của 'pmatch' để phân biệt hành vi của nó với' match' –