Переименовывайте строковые значения в столбце, если не выполняется несколько условий

#r

#r

Вопрос:

У меня есть столбец данных о возрастном диапазоне, который выглядит следующим образом:

 data lt;- c("lt;18", "956", "675", "18-30", "31-50", "50 ", "543" "Unknown")  

Теперь я хочу переименовать все символы целых чисел как «Неизвестные», чтобы новый столбец выглядел так:

 data lt;- c("lt;18", "18-30", "31-50", "50 ", "Unknown")  

Я пробовал использовать это:

 if(data$age_range !="lt;18" || data$age_range !="18-30" || data$age_range !="31-50" || data$age_range !="50 ")  {data$age_range2 = "Unknown"}  

Но он переименовывает все значения в "Unknown"

Я тоже пробовал использовать ifelse , но это тоже не работает. Я совсем новичок в R и был бы признателен за всю помощь, которую я могу получить.

Заранее спасибо!

Ответ №1:

Вы можете преобразовать данные в числовые и переименовать целые числа как «Неизвестные».

 data lt;- c("lt;18", "956", "675", "18-30", "31-50", "50 ", "543", "Unknown")  data[which(!is.na(as.numeric(data)))] lt;- "Unknown"  data  

Результат

 [1] "lt;18" "Unknown" "Unknown" "18-30" "31-50" "50 " "Unknown" "Unknown"  

Если вы хотите сохранить только одно «Неизвестное»,

 sort(unique(data)) # [1] "lt;18" "18-30" "31-50" "50 " "Unknown"  

Комментарии:

1. Большое спасибо, это сработало идеально!

2. Добро пожаловать!