R对名义数据使用factor() - 如何为多个变量的标签值

时间:2015-12-16 14:06:35

标签: r

我是一个R新手,所以这个问题可能很明显,但我有一个很好的搜索,无法找到任何东西。

我想用R来分析调查而不是通常的方法。

我的变量标记为Q1,Q2,Q3 ......

Q1和Q2包含名义数据(1,2),并且我希望将值替换为("是","否")。我可以使用下面的代码执行此操作,但我不确定是否应该使用c来子集或使用c(使用因子函数。调查将有大约25个问题需要应用,所以我' d而是在一行代码而不是25行中完成。

resdata$Q1 <- factor(resdata$Q1, levels = c(1,2), labels = c("Yes", "No"))

1 个答案:

答案 0 :(得分:0)

首先,您需要定义替换器功能:

repl.f <- function(x) ifelse(x==1, "Yes","No")

然后在dplyr:

中的mutate_each()中使用此参数
library(dplyr)
resdata <- resdata %>% mutate_each(funs(repl.f),contains("Q"))

它的第一个参数是要在funs()中应用的函数,第二个是列的子集。如果您只给它一个函数,那么它将默认替换这些列。要选择列,您可以使用另一个dplyr函数:contains(),它与dplyr中的其他内容非常相似。