R - упорядоченный коэффициент по нескольким столбцам - PullRequest
0 голосов
/ 20 января 2020

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

У меня есть опрос из 19 вопросов, сохраненный в кадре данных (19 столбцов). Ответы нумеруются c и преобразуются в символы.

Я хотел бы изменить баллы Лайкерта на коэффициент и указать уровни. Я могу сделать это с каждым столбцом отдельно, но мне интересно, как использовать al oop, чтобы применить это ко всем столбцам без необходимости повторять эту строку кода 19 раз для всех столбцов

Мой текущий код

lik_tab$lik_01 <- factor(lik_tab$lik_01,
                          levels = c("1", "2", "3", "4", "5"),
                            ordered = TRUE)

Я знаю, что могу повторить это для следующих столбцов "lik_02", lik_03 "... и так далее, но как мне написать это более кратко?

Я попытался выполнить lapply со следующей ошибкой :

lik_tab <- lapply(lik_tab,factor(levels = c("1", "2", "3", "4", "5"),
+                                      ordered = TRUE))
Error in match.fun(FUN) : 
  'factor(levels = c("1", "2", "3", "4", "5"), ordered = TRUE)' is not a function, character or symbol

Спасибо!

1 Ответ

1 голос
/ 20 января 2020

Если мы переносим вызов функции, используем анонимную функцию, также при назначении полного набора данных, используем [], чтобы сохранить структуру набора данных, в противном случае это будет list вывод из lapply

lik_tab[] <- lapply(lik_tab, function(x) factor(x, 
                   levels = c("1", "2", "3", "4", "5"),
                                  ordered = TRUE))

В противном случае мы можем просто указать параметры

lik_tab[] <- lapply(lik_tab, factor, levels = c("1", "2", "3", "4", "5"),
                                   ordered = TRUE)
...