多列上的R-有序因子
我对R非常陌生,所以请原谅这里的R语法错误 我有一个19个问题的likert调查,保存在一个数据框中(19列)。响应为数字并转换为字符 我想将Likert分数更改为因子并指定级别。我可以对每一列单独执行此操作,但我想知道如何使用循环将其应用于所有列,而不必对所有列重复这行代码19次 我当前的代码多列上的R-有序因子,r,factoring,R,Factoring,我对R非常陌生,所以请原谅这里的R语法错误 我有一个19个问题的likert调查,保存在一个数据框中(19列)。响应为数字并转换为字符 我想将Likert分数更改为因子并指定级别。我可以对每一列单独执行此操作,但我想知道如何使用循环将其应用于所有列,而不必对所有列重复这行代码19次 我当前的代码 lik_tab$lik_01 <- factor(lik_tab$lik_01, levels = c("1", "2", "3", "4",
lik_tab$lik_01 <- factor(lik_tab$lik_01,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE)
lik_tab$lik_01如果我们使用函数调用包装,则使用匿名函数,同时在分配给完整数据集时,使用[]
保留数据集的结构,否则,它将是lappy
的列表输出
lik_tab[] <- lapply(lik_tab, function(x) factor(x,
levels = c("1", "2", "3", "4", "5"),
ordered = TRUE))
lik_tab[]akrun的答案很好。我需要将因子列的子集转换为有序因子。我使用了dataset[ordered_vars]@MehmetYildirimlapply
的第二个选项,因为apply
将data.frame转换为matrix
,而matrix只能有一个类。它将强制它使用字符
,并删除因子属性
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)