J'ai deux colonnes de chaînes dans une trame de données, et pour chaque ligne, je veux voir les caractères qui diffèrent.Extraction par ligne de caractères qui diffèrent entre deux chaînes
donné par exemple
Lines <- "
a b
cat car
dog ding
cow haw"
df <- read.table(text = Lines, header = TRUE, as.is = TRUE)
retour
a b diff
cat car t
dog ding o
cow haw co
J'ai vu
ainsi que
où un certain nombre de solutions soignées sont retournées, qui travaillerait pour une ligne individuelle (première référence), ou agir ligne sage, mais pas exactement ce que je veux (deuxième référence).
Idéalement, je voudrais utiliser quelque chose comme ceci:
Reduce(setdiff, strsplit(c(a, b), split = ""))
J'ai essayé:
apply(df, function(a,b) Reduce(setdiff, strsplit(c(a, b), split = "")))
mais en vain.
Comment cela peut-il être fait?
p.s. Je suis particulièrement désireux de le faire en utilisant dplyr si possible, mais seulement pour des raisons stylistiques
Votre exemple n'est pas reproductible. S'il vous plaît envisager d'utiliser 'dput'. Par exemple, nous verrons si vous avez réellement des vecteurs de caractères ou factorisez dans vos colonnes, ce qui est une source de confusion courante. – lmo