Я пытаюсь подсчитать количество провайдеров, предлагающих конкретный курс, в соответствии с уровнями CEFR (Общеевропейские рамки для языков), которых должно быть 6 ( A1, A2, B1, B2,C1, C2 )
База данных была составлена многими разными людьми, поэтому текстовые вводы не все одинаковы.Это означает, что вместо 6 факторов у меня было 61.
Я попытался изменить класс фрейма данных таким образом, чтобы все наблюдения были символами, а затем заменить наблюдения, содержащие целевое выражение и лишние символы (в данном случае «A1»)с целевым выражением и без пробелов.
Я использую пакет stringr .
str_replace_all(ilepString$Entry.Level, "A1", "NA_Character_")
str_replace_all(ilepString$Entry.Level, "NA", "A1")
str_trim(ilepString$Entry.Level)
str_detect(ilepString$Entry.Level, "A1") #This shows me that I have failed, quite miserably, as character strings containing solely "A1" are in data obs., but entries of "A1" along with other unwanted characters, or blank space, still persist in the dataset.
Я также попробовал следующее:
gsub (". A0. "," A1 ", ilepString $ Entry.Level)
Однако, когда я спрашиваю, как теперь выглядят данные с
dput(head(ilepString$Entry.Level))
c("", "A1", "A1", "A2", "B1", "B2")
#Looking at the head, the output seems fine, but the following command shows the problem remains:
ilepString$Entry.Level[351:369]
[351] "A1-B1" "A2"
[353] "B1" "A2-B2"
[355] "4.5 A2" "B1"
[357] "B2" "A1-A2"
[359] "A2-B1" "A2-B2"
[361] "A1" "A2"
[363] "B1" "B2"
[365] "A1" "A2"
[367] "B1" "B2"
[369] " A1" " A2"
, я хочу каждую запись / объект.быть уменьшенным до одной буквы и цифры.
[351] "A1" "A2"
[353] "B1" "A2"
[355] "A2" "B1"
[357] "B2" "A1"
[359] "A2" "A2"
Приношу свои извинения, если я плохо себя объяснил.Пожалуйста, имейте в виду, что я совсем новичок в R
, и на самом деле не очень разбираюсь в этом.