Also habe ich einfach diese Funktion erstellt, die grundsätzlich zwei Strings (einen Text und eine Menge von Schlüsselwörtern) benötigt. Dann muss es herausfinden, wie viele Schlüsselwörter in der Textzeichenfolge enthalten sind, falls vorhanden. Ich habe versucht, den Code auf einen Datenrahmen ohne Erfolg anzuwenden.Konvertiere eine Funktion in einen apply, sapply (data.frame)
Funktion arbeitet:
something=function(text,keywords){
kw = unlist(strsplit(keywords, ","))
c=0
for(i in length(kw)){
if(grepl(kw[i],text)==0){
c=c+1
} else {c}
}
return(c)
}
Wo, wenn ich imput:
> something("this planetarium is the shit","planetarium,amazing")
[1] 1
Aber was, wenn mein Datenrahmen wurde df
keyword text_clean
1 planetarium Man this planetarium is the shit
2 musee,africain rt lyonmangels reste encore places franceangels tour lyon organisons investissons pme
Mein Ausgang erwarten ist:
df.1
1 1
2 0
Irgendwelche Einblicke? Ich habe versucht, diesen Code:
substng<-function(text, keywords){
vector = laply(text,function(text,keywords){
kw = unlist(strsplit(keywords, ","))
c=0
for(i in length(kw)){
if(grepl(kw[i],text)==0){
c=c+1
} else {c}
}
return(c)
})
vector.df= as.data.frame(vector)
}
df <- read.table(header = TRUE, stringsAsFactors = FALSE, text = "keyword text_clean
planetarium 'Man this planetarium is the shit'
musee,africain 'rt lyonmangels reste encore places franceangels tour lyon organisons investissons pme'")
df$count = substng(df$text_clean,df$keyword)
'mapply (etwas, df $ text_clean, df $ Schlüsselwort, USE.NAMES = FALSE)' sollte funktionieren. obwohl ich denke, dass du 'grepl (...) == 0''ing bist, wenn du' grepl (...) == 1''ing – rawr
sein solltest, teste ich das, 'grepl (...) == 0 'wo 0 wahr ist .. aber dein mapply half mir meinen Code zu lösen. Ich habe meine Funktion ausgeführt! Vielen Dank! –