Ich habe eine Liste mit Vektoren von Wörtern, die unterschiedliche Länge haben. Ich möchte einen Datenrahmen erstellen, der Informationen über die Überlappung zwischen jedem dieser Wortvektoren in Bezug auf die anderen enthält.Auf der Suche nach effizienteren Weg, um diese Berechnung durchzuführen
Ich habe ein Doppel jetzt für Schleife, die überprüft, wie viele Wörter in jeder der anderen Einträge mit Summe (l [i]% in% l [j]) sind, wenn i nicht gleich j ist
Meine aktuelle Methode scheint ineffizient zu sein, liefert aber die richtige Antwort. Was ist der beste Weg, dies zu tun?
l = list()
l <- c(l,list(c("word","another","hi","words")))
l <- c(l,list(c("word","maybe","nope")))
l <- c(l,list(c("maybe","nope")))
df <- data.frame(index = 0,one = 0,two = 0)
for(i in 1:length(l)){
df <- rbind(df,data.frame(index = i,one = 0,two = 0))
for(j in 1:length(l)){
if(i == j){next}
truth_vec <- sum(l[[i]] %in% l[[j]])
if(truth_vec == 1){df[i + 1,]$one = df[i + 1,]$one + 1}
else if(truth_vec == 2){df[i + 1,]$two = df[i + 1,]$two + 1}
else{NULL}
}
}
@thelatemail, sollten Sie als Antwort – CPak
@ChiPak posten - Ich hatte auf einige Klärung von OP zuerst auf, was sie als Ausgabe wollen. – thelatemail
Richtig, es ist immer noch eine nette Antwort, auch wenn das Format nicht ganz das ist, wonach OP sucht. – CPak