Некоторые респонденты указывают год рождения, а не возраст, нужно перевести все это в возраст (в R)

У меня в опросе и один из вопросов задается по возрасту (лет). Большинство людей указали свой возраст, но некоторые указали год своего рождения. Поэтому мне нужно преобразовать их в возраст (2020-год). Есть ли способ сделать это, который не означает, что каждый год нужно вручную проходить и преобразовывать его? Я использую R. Кроме того, чтобы код можно было использовать в будущем, есть ли способ считать с «текущего» года, а не с 2020?

age<-c(22,1992,18,33,41,26,24,24,1982,30,1976,30)

Это научит меня к следующему опросу ставить «максимум» в поле значения!

Спасибо :)


person Gabriella    schedule 17.06.2020    source источник
comment
Привет, не могли бы вы опубликовать воспроизводимый пример (вы можете использовать dput()) и ожидаемый результат? Спасибо   -  person Sotos    schedule 17.06.2020
comment
попробуйте поместить такую ​​логику в выражение data.table (или data.frame): if age › 1000, age = 2020 - age   -  person webb    schedule 17.06.2020
comment
Что-то вроде DF[DF$age > 100, "age"] <- 2020 - DF[DF$age > 100, "age"]?   -  person Roland    schedule 17.06.2020
comment
@sotos очень жаль, я не уверен, что знаю, как это сделать? Я мог бы привести пример моего кода? Мин. 1 кв. Медиана Среднее 3-е кв. Максимум. NA от 18,00 23,00 27,00 30,57 32,00 1996,00 20 [1] 47 20 28 27 40 31 23 33 33 19 32 42 25 22 22 22 34 45 [18] 21 40 40 27 25 25 26 39 26 26 21 23 23 32 39 [35 ] 29 24 20 27 27 27 25 31 28 32 29 29 26 18 22 29 33   -  person Gabriella    schedule 17.06.2020
comment
Вот: Как сделать отличный воспроизводимый пример R?   -  person Sotos    schedule 17.06.2020


Ответы (1)


Вы можете исправить это, используя простой ifelsestatement в следующих строках:

если age > 1000, вычесть age из текущего года 2020; если age не > 1000, оставьте age:

ifelse(age > 1000, 2020 - age, age)
[1] 22 28 18 33 41 26 24 24 38 30 44 30
person Chris Ruehlemann    schedule 17.06.2020
comment
Спасибо за Ваш ответ! Я пытаюсь сделать наоборот, поэтому возраст от года рождения - извините, я не ясно! опрос ‹-опрос %›% ifelse(возраст›99, 2020-возраст,возраст) Но это не работает - person Gabriella; 17.06.2020
comment
Немного смущен: вам нужны возрасты, верно? Что-то вроде 22, 32 и т. д.? - person Chris Ruehlemann; 17.06.2020