Я прочитал других, у которых была похожая проблема, но моя ситуация, похоже, не совпадает с исправлениями, предложенными для этих других проблем.Я пытаюсь перекодировать переменную, используя условный оператор.Я хочу взять символьную строку и превратить ее в числовое, чтобы я мог поместить эти наблюдения в новый фрейм данных.Вот что у меня есть:
blad_mor <- read.csv("blad_mor.csv", header = T)
str(blad_mor)
blad_mor_recode <- gsub(C670:C679, 29010, blad_mor$cod)
Я получаю этот вывод для команды str()
:
> str(blad_mor)
'data.frame': 127073 obs. of 12 variables:
$ year : int 1999 1999 1999 1999 1999 1999 1999 1999 1999 1999 ...
$ sex : Factor w/ 4 levels "1","2","F","M": 1 1 1 2 1 2 2 2 2 2 ...
$ race : Factor w/ 17 levels "America","Asian &",..: 4 4 4 4 4 4 4 4 4 4 ...
$ county : Factor w/ 79 levels "COUNTY1","COUNTY2",..: 1 1 1 1 1 1 1 1 1 1 ...
$ cod : Factor w/ 327 levels "C001","C005",..: 89 108 108 294 63 42 172 74 85 269 ...
$ fips : int 1 1 1 1 1 1 1 1 1 1 ...
$ state : int 5 5 5 5 5 5 5 5 5 5 ...
$ race_code : int 2 2 2 2 2 2 2 2 2 2 ...
$ ethnicity : Factor w/ 4 levels "","Hispanic",..: 1 1 1 1 1 1 1 1 1 1 ...
$ ethnicity_code: int NA NA NA NA NA NA NA NA NA NA ...
Но когда я пытаюсь код blad_mor_recode <- gsub(C670:C679, 29010, blad_mor$cod)
, я получаю эту ошибку:
> blad_mor_recode <- gsub(C670:C679, 29010, blad_mor$cod)
Error in gsub(C670:C679, 29010, blad_mor$cod) : object 'C670' not found
Итак, я проверяю, что на самом деле это этот объект table(blad_mor$cod)
, и это часть вывода:
C578 C579 C58 C60 C601 C609 C61 C629 C631 C639 C64 C65 C66 C670 C672 C674 C675 C676
2 43 4 1 1 53 6162 62 1 14 2911 30 47 1 4 1 1 2
C677 C678 C679 C680 C689 C690 C692 C693 C694 C695 C696 C699 C700 C701 C709 C71 C710 C711
1 4 2776 35 77 1 4 5 1 1 8 45 7 3 11 1 29 34
Объект 'C670 'имеет один экземпляр согласно этому выводу, но R говорит мне, что его там нет и не запускает команду.Что мне здесь не хватает?Должен ли я изменить тип класса с фактора на что-то еще?Я в замешательстве.
Редактировать: я пробовал кавычки вокруг строк символов (например, blad_mor_recode <- gsub('C670:C679', '29010', blad_mor$cod)
, а также ifelse (). Я все еще получаю то же сообщение об ошибке.