Я пытаюсь сопоставить два набора слов с количеством строк. Два набора слов - это автомобиль и школа, и, используя пакет stringr, я настроил его так, чтобы он соответствовал любому экземпляру слова из автомобиля или школы.
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
Поскольку Honda, которая входит в классификацию автомобилей, появляется один раз, ее частота равна единице. Аналогичным образом, штат Огайо, который входит в классификацию школ и встречается дважды, имеет частоту два.
Может ли кто-нибудь помочь мне перейти от сопоставления классификации к нахождению частоты каждого слова в классификации?
Я, вероятно, мог бы вернуться и установить каждое слово в машине как собственное str_c и сопоставить его таким образом, но я бы хотел найти «более простой» маршрут.