У меня есть набор данных опроса, который я импортировал как файл SAS, но он не включал текстовые метки, связанные с числовыми кодами в наборе данных.
Я пытаюсь применить фактор-функцию квсе переменные и затем имеют соответствующие уровни и метки для каждой переменной.
У меня есть основной фрейм данных с фактическими данными, а затем второй фрейм данных с текстовыми метками, соответствующими каждому значению для каждой переменной.
Так, например, имена столбцов переменных в основном наборе данных: A1, B1, C1, D1.Второй кадр данных с метками указан ниже с фиктивным текстом.И для каждой переменной существует различное количество значений, которым требуются текстовые метки.
labels_list <- structure(list(VariableName = c("A1", "A1", "A1", "B1", "B1",
"B1", "B1", "C1", "C1", "C1", "C1", "C1", "D1", "D1", "D1", "D1",
"D1", "D1"), Value = c(1L, 2L, 3L, 1L, 2L, 3L, 4L, 1L, 2L, 3L,
4L, 5L, 1L, 2L, 3L, 4L, 5L, 6L), Label = c("Red", "Blue", "Yellow",
"Up", "Down", "Left", "Right", "Boston", "Atlanta", "Dallas",
"New York", "Los Angeles", "John", "Jim", "Jake", "Bill", "Bob",
"Brian")), class = "data.frame", row.names = c(NA, -18L))
Я пытаюсь написать функцию для автоматической маркировки всех факторных переменных.Функция сокращает данные, чтобы убедиться, что все они содержат одинаковые переменные, а затем находятся в абсолютно одинаковом порядке.Я разбил таблицу выше в список с помощью функции split, а затем у каждого имени переменной выше есть свой собственный список, но я сталкиваюсь с ошибкой, когда пытаюсь поместить список в цикл for.
Ниже приведен цикл for, который я написал.
df = основной набор данных
tags_list = список со значением и текстовыми метками
for(i in 1:ncol(df)) {
for(j in labels_list) {
if(names(x[,i]) == names(ahs_split[[j]])) {
x[,i] <- factor(x[,i], levels = c(ahs_split[[j]][[2]]), labels = c(ahs_split[[j]][[3]]))
AsЯ упомянул, что моя конечная цель - взять этот фрейм данных с текстовыми метками и соответствующими значениями для каждой переменной и применить его к каждому в отдельности, используя функцию фактора.Я пытался почти месяц, и я просто очень застрял, чтобы я мог использовать любую помощь.Я не уверен, что кто-то мог бы порекомендовать лучший подход или указать мне правильное направление.Я был бы очень признателен за любую помощь.