使用 Apply 将数值列转换为带标签的因子
Using Apply to convert numeric columns to factors with labels
我有一个包含 5 个项目的李克特量表,其中有五个可能,我正在尝试使用包 likert
将其可视化。最终目标是为每个结构制作一个图表,显示用户如何使用某个方面以某种方式回答。该软件包要求所有内容都是我使用每列以下代码完成的一个因素
myscale$scale_1 <- factor (myscale$scale_1,
levels = c(0:5),
labels=c("Unanswered","1","2","3","4","5"))
我认为这是使用 lapply 将其应用于数据框中所有五列的绝佳方式。我在下面尝试过,但有点碰壁。我看过一些例子
lapply(myscale,factor(levels = c(0:5), labels=c("Unanswered","1","2","3","4","5")))
当我们在没有匿名函数调用的情况下使用 lapply
时,新函数的参数可以这样传递。
myscale[] <- lapply(myscale, factor, levels = 0:5,
labels = c("Unanswered", "1", "2", "3", "4", "5"))
如果我们使用匿名函数调用,
myscale[] <- lapply(myscale, function(x) factor(x, levels = 0:5,
labels =c("Unanswered", "1", "2", "3", "4", "5")))
以上内容也可以用 dplyr
中的 mutate_each
完成
library(dplyr)
library(magrittr)
myscale %<>%
mutate_each(funs(factor(., levels = 0:5, labels = c("Unanswered", 1:5))))
数据
set.seed(24)
myscale <- data.frame(scale_1 = sample(0:5, 20, replace=TRUE),
scale_2 = sample(0:5, 20, replace=TRUE))
我有一个包含 5 个项目的李克特量表,其中有五个可能,我正在尝试使用包 likert
将其可视化。最终目标是为每个结构制作一个图表,显示用户如何使用某个方面以某种方式回答。该软件包要求所有内容都是我使用每列以下代码完成的一个因素
myscale$scale_1 <- factor (myscale$scale_1,
levels = c(0:5),
labels=c("Unanswered","1","2","3","4","5"))
我认为这是使用 lapply 将其应用于数据框中所有五列的绝佳方式。我在下面尝试过,但有点碰壁。我看过一些例子
lapply(myscale,factor(levels = c(0:5), labels=c("Unanswered","1","2","3","4","5")))
当我们在没有匿名函数调用的情况下使用 lapply
时,新函数的参数可以这样传递。
myscale[] <- lapply(myscale, factor, levels = 0:5,
labels = c("Unanswered", "1", "2", "3", "4", "5"))
如果我们使用匿名函数调用,
myscale[] <- lapply(myscale, function(x) factor(x, levels = 0:5,
labels =c("Unanswered", "1", "2", "3", "4", "5")))
以上内容也可以用 dplyr
mutate_each
完成
library(dplyr)
library(magrittr)
myscale %<>%
mutate_each(funs(factor(., levels = 0:5, labels = c("Unanswered", 1:5))))
数据
set.seed(24)
myscale <- data.frame(scale_1 = sample(0:5, 20, replace=TRUE),
scale_2 = sample(0:5, 20, replace=TRUE))