У меня есть десять столбцов возраста в моем фрейме данных, названных одинаково (то есть agehhm1, agehhm2,…, agehhm10), которые должны содержать возраст в годах для человека. В настоящее время все они являются строками, поскольку некоторые наблюдения включают слова «месяц», «мос» и т. Д. c. так как некоторые люди моложе 1 года. Я пытаюсь использовать lapply для l oop через эти столбцы и заменить наблюдения, которые включают эти строковые шаблоны, значением «0». Я близок, но зацикливаюсь на том, как назвать новые столбцы, которым я хочу назначить вывод lapply. Я пытаюсь установить имена. Я не получаю сообщение об ошибке, но в моем фрейме данных ничего не меняется.
Я пытаюсь сделать следующее. Я храню 10 столбцов возраста в объекте "hhages_varnames". Затем я применяю lapply к этому списку объектов и заменяю соответствующие obs в каждом из них на 0, если найду любой из текстовых шаблонов "month". Я пытаюсь создать новые столбцы с именем agehhm1_clean, et c в качестве выходных данных.
Я открыт для любых других методов, которые, по вашему мнению, подходят для любой части этого.
hhages_varnames просто объект, где я храню имена 10 возрастных столбцов. Так что это просто вектор 1:10 с "agehhm1", "agehhm2", ... "agehhm10".
hhages_varnames <- ls(dataframe_name, pattern = "agehhm.*")
setNames(lapply(hhages_varnames, FUN = function(x) (replace(x, grepl("month|MO|mos|days|months", dataframe_name[,x]),"0"))),
paste(names(hhages_varnames),"clean", sep="_"))