Для начала в операторе read.csv
добавьте stringsAsFactors=F
, чтобы при работе с ним не было уровней факторов.Кроме того, может помочь убедиться, что поле Text_General_Code одинаково:
pdx = read.csv("https://cyo.arringtonadventures.com/crime/crime.csv",header = T, stringsAsFactors=F) %>%
mutate(Text_General_Code = str_to_sentence(Text_General_Code))
Затем выполните подсчет значений в Text_General_Code и, возможно, выведите его на объект, который вы можете проверить (при условии, что выusing Rstudio):
tgc <- pdx %>%
count(Text_General_Code)
view(tgc)
Тогда вы увидите, что часть проблемы - это то, что вы ищете в разделе # Group Text_General_Code по категориям, на самом деле не существует.И один, «БАТАРЕЯ», вообще не существует.
В качестве стратегии группировки вы можете попробовать использовать оператор case_when в цепочке dplyr:
pdx <- pdx %>%
mutate(category = case_when(Text_General_Code == "Thefts" |
Text_General_Code == "Motor Vehicle Theft" |
Text_General_Code == "Theft from Vehicle"
~ "Theft",
Text_General_Code == "Robbery Firearm" |
Text_General_Code == "Robbery No Firearm"
~ "Robbery"))
..и т. д., пока вы не сгруппируете, как хотите.
Затем для контроля качества выполните проверку:
pdx %>%
count(category, Text_General_Code)