1

2 つの単語セットを文字列の数と一致させようとしています。2 つの単語セットは car と school で、stringr パッケージを使用して、car または school のいずれかの単語のインスタンスに一致するように設定しました。

library(stringr)
car <- c("Honda", "Chevy", "Toyota", "Ford")
school <- c("Michigan", "Ohio State", "Missouri")
car_match <- str_c(car, collapse = "|")
school_match <- str_c(school, collapse = "|")
df <- data.frame(keyword=c("He drives a Honda", 
                           "He goes to Ohio State", 
                           "He likes Ford and goes to Ohio State"))
df

main <- function(df) {
  df$car <- as.numeric(str_detect(df$keyword, car_match))
  df$school <- as.numeric(str_detect(df$keyword, school_match))
  df
}
main(df)

> main(df)
                               keyword car school
1                    He drives a Honda   1      0
2                He goes to Ohio State   0      1
3 He likes Ford and goes to Ohio State   1      1

素晴らしい、それはうまくいきます。

ここで、戻って、車と学校の「バケツ」内の各単語の頻度を簡単にカウントできるかどうかを確認したいと思います。

したがって、次のようになります

Car        Freq
Honda      1
Chevy      0 
Toyota     0
Ford       1

school     Freq
Michigan    0
Ohio State  2
Missouri    0

車の分類にある本田は 1 回出現するため、度数は 1 です。同様に、学校分類にあり、2 回出現するオハイオ州の頻度は 2 です。

分類の一致から分類内の各単語の頻度を見つけるまで、誰でも手伝ってくれますか?

おそらく戻って、 car の各単語を独自の str_c として設定し、そのように一致させることもできますが、「より単純な」ルートを見つけたいと思います。

4

2 に答える 2

2

おそらく次のようなものです:

sapply(car, function(x) sum(str_count(df$keyword, x)))
# Honda  Chevy Toyota   Ford 
#     1      0      0      1 

sapply(school, function(x) sum(str_count(df$keyword, x)))
# Michigan Ohio State   Missouri 
#        0          2          0
于 2014-04-29T20:51:56.730 に答える