2017-05-25 4 views
0

Meine Datentabelle hat zwei Textspalten (col1 und col2). Beide haben Sätze in ihnen. Ich möchte nach allen Wörtern in col1 in col2 suchen und eine Zeichenfolge zurückgeben, die Wörter in col1 minus die Wörter hat, die in col2 gefunden wurden. Unten ist ein BeispielR: Sucht Wörter in einer Zeichenfolge in einer anderen Zeichenfolge und gibt Wörter zurück, die nicht übereinstimmen können

  col1     |   col2    |  output 
america, uk have too much money | uk, uk money too too | america, have much 
+0

Was Sie bisher versucht haben? – Jan

Antwort

1

so etwas wie das?

DT <- data.table(col1 <- "america, uk have too much money", col2 <- "uk, uk money too too") 
DT[, output := paste(strsplit(DT[,col1], "(\\s+)|(?!')(?=[[:punct:]])", perl = TRUE)[[1]][!(strsplit(DT[,col1],"(\\s+)|(?!')(?=[[:punct:]])", perl = TRUE)[[1]] %in% strsplit(DT[,col2], "(\\s+)|(?!')(?=[[:punct:]])", perl = TRUE)[[1]])], collapse = " ")] 

kein Komma obwohl

+0

[siehe diese] (https://stackoverflow.com/questions/22235288/strsplit-on-all-spaces-and-punctuation-except-apostrophes) – simone

+0

Dank @simone .. – Oshan

Verwandte Themen