これで、基本的に2つの文字列(テキストとキーワードのセット)を取ります。次に、テキスト文字列に含まれるキーワードがいくつあるか調べなければなりません。私は成功していないデータフレームにコードを適用しようとしていました。関数をapply、sapply(data.frame)に変換します
機能が働いている:私は入力プログラム場合
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)
}
を:
> something("this planetarium is the shit","planetarium,amazing")
[1] 1
しかし、何が私のデータフレームが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
した場合に予想される私の出力は次のとおりです。
df.1
1 1
2 0
洞察?私はこのコードをしようとしていた。
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(何かが、DFの$のtext_clean、DF $キーワード、USE.NAMES = FALSE)'動作するはずです。 grepl(...)== 1でなければならないときはgrepl(...)== 0 'と書いてあります。 – rawr
私は 'grepl(...)== 0 '0はTrueですが、私のコードを解決するのに役立ちました。私は私の機能を実行している! ありがとうございました! –