İki dizgim var, a <- "AERRRTX"; b <- "TRRA"
.Iki dizeleri arasındaki ayrım farklı karakterleri ayıkla
ben setdiff
kullanır Extract characters that differ between two strings yanıtını, denedik
, b
kullanılmayan yani "ERX" a
karakterleri ayıklamak istiyorum. b
"R" ve setdiff
, a
içinde üç "R" s tüm ortadan kaldıracak çünkü "EX" döndürür. Amacım her karakteri ayrı olarak ele almak, böylece a
'daki üç R'nin sadece ikisi ortadan kaldırılmalıdır.
setdiff
yerine neler kullanabileceğime dair herhangi bir öneri veya çıktımı elde etmek için başka bir yaklaşım mı arıyorsunuz?
Minör noktası: Bu tavsiye edilir Yaygın olarak kullanılan yerleşik bir işlev olduğundan, 'c' atanmasını engellemek için. Eğer 'c' herhangi bir çevreleyen ortamda tanımlanmış bir değişken ise, bu tanımlayıcıya yapılan başvurular ona bağlanarak çok fazla kod çözebilir. Örneğin, 'do.call (c, ...) 'bu durumda başarısız olur. – bgoldst
@bgoldst haklısınız. Güncellenmiş. Teşekkürler! –
Güzel bir alternatif. Üçüncü hattınızı 'a1 [-pmatch (b1, a1)]' ile değiştirebilirsiniz. Ayrıca, davranışını "eşleştirmeye" ayıran "pmatch" in "duplicates.ok = FALSE" argümanını not etmek yararlı olacaktır. –