Я выполняю очистку данных в R. Есть несколько переменных, которые закодированы как переменные типа char, которые я хочу преобразовать в цифру c. Они представляют собой суммы в долларах, поэтому при загрузке CSV они были определены как переменные символов - поэтому, например, мне нужно конвертировать $ 123 456 в 123456.
Чтобы сделать эту переменную за раз, я могу использовать следующий код, который работает нормально:
data2<-data
data2$'FY 2011' <- parse_number(data$'FY 2011')
Однако я хотел бы l oop по всем переменным в кадре данных, которые необходимо преобразовать. Эти переменные не все рядом друг с другом. Я попытался использовать для l oop, как показано ниже:
#Duplicate dataset
data2<-data
#Define the variable names to loop over
x<-c('FY 2011', 'FY 2012', 'FY 2013', 'FY 2014')
#loop over the variable names, putting the converted values into the new dataset
for (var in x) {
data2$var <- parse_number(data$var)
}
Однако это не работает, выдавая ошибку «Ошибка в parse_vector (x, col_number (), na = na, locale»). = locale, trim_ws = trim_ws): is.character (x) не TRUE Кроме того: Предупреждение: Неизвестный или неинициализированный столбец: 'var'. "
Я думаю, это потому, что я не помещаю переменную имена в l oop в нужном формате. Однако я не могу понять правильный формат. Я знаю, что есть способы использовать lapply для применения функции к нескольким переменным, но я не могу найти способ использовать это, чтобы поместить вывод в новый набор данных с теми же именами переменных. (Я привык использовать Stata, где довольно легко реализовать этот тип для l oop до l oop над именами переменных.)
Большое спасибо за вашу помощь!