繁体   English   中英

有序变量变成二分法

[英]Ordinal variable to become dichotomous

我有一个我想变得二分法的序数变量,请参见下面的代码和此处的示例数据集。 我想拥有的是将标签c(1:10)重新组合如下:

  • 0 <-c(“无关紧要”,“ 2”,“ 3”)
  • 删除了c(“ 4”,“ 5”,“ 6”,“ 7”)
  • 1 <-c(“ 8”,“ 9”,“非常相关”)

我该如何实现?

码:

library(ggplot2) # professional plots
library(reshape2) # professional boxplots
library(plyr) # to rename
library(likert) # likert scales
library(gridExtra) # for arrangeGrob() to write footnotes in plots
library(stringr) # for wrapping labels via str_wrap in plots
competence_bachelor <- rawdata[, substr(names(rawdata), 1, 4) == "Q002"]
competence_bachelor <- rename(competence_bachelor, c(Q002_01 = "Ability to propose new ideas and new solutions", Q002_02 = "Ability to present in public", Q002_03 = "Ability to use a computer", Q002_04 = "Ability to use the Internet", Q002_05 = "Ability to use statistical programs", Q002_06 = "Ability to write reports", Q002_07 = "Knowledge of economic concepts", Q002_08 = "Knowledge of legal concepts", Q002_09 = "Ability to understand the other's point of view", Q002_10 = "Ability to rapidly acquire new knowledge", Q002_11 = "Ability to team work", Q002_12 = "Ability to do analysis with quantitative methods", Q002_13 = "Ability to do analysis with qualitative methods", Q002_14 = "Knowledge of English", Q002_15 = "Knowledge of another foreign language"))
i <- 1
while(i <= ncol(competence_bachelor)) {
  competence_bachelor[[i]] = factor(competence_bachelor[[i]],labels = c("insignificant", "2", "3", "4", "5", "6", "7", "8", "9", "very relevant"), levels = c(1:10))
i <- i + 1
}
competence_bachelor_plot <- likert(competence_bachelor)
p <- plot(competence_bachelor_plot, centered = FALSE, include.histogram = FALSE) + ggtitle("How do you rate your skills gained with the Bachelor's?*") + theme(axis.text.y = element_text(colour = "black"), axis.text.x = element_text(colour = "black")) + theme(legend.key.size = unit(0.02,"npc"))+guides(fill = guide_legend(""))
g <- arrangeGrob(p, sub = textGrob("*Order of questions was randomized and only extremes labeled in online questionaire.", x = 0, hjust = -0.1, vjust = 0.1, gp = gpar(fontface = "italic", fontsize = 10)))
print(p)
ggsave((filename = "competence_bachelor.pdf"), scale = 1, width = par("din")[1], height = par("din")[2], units = c("in", "cm", "mm"), dpi = 300, limitsize = TRUE, g)

源代码的编辑版本:

它基本上将以下行添加到原始行: levels(competence_bachelor_dich) <- list("0" = c("insignificant", "2", "3"), "1" = c("8", "9", "very relevant")) # set levels

library(ggplot2) # professional plots
library(reshape2) # professional boxplots
library(plyr) # to rename
library(likert) # likert scales
library(gridExtra) # for arrangeGrob() to write footnotes in plots
library(stringr) # for wrapping labels via str_wrap in plots
competence_bachelor_dich <- rawdata[, substr(names(rawdata), 1, 4) == "Q002"] # dichotomous variable
competence_bachelor_dich <- rename(competence_bachelor_dich, c(Q002_01 = "Ability to propose new ideas and new solutions", Q002_02 = "Ability to present in public", Q002_03 = "Ability to use a computer", Q002_04 = "Ability to use the Internet", Q002_05 = "Ability to use statistical programs", Q002_06 = "Ability to write reports", Q002_07 = "Knowledge of economic concepts", Q002_08 = "Knowledge of legal concepts", Q002_09 = "Ability to understand the other's point of view", Q002_10 = "Ability to rapidly acquire new knowledge", Q002_11 = "Ability to team work", Q002_12 = "Ability to do analysis with quantitative methods", Q002_13 = "Ability to do analysis with qualitative methods", Q002_14 = "Knowledge of English", Q002_15 = "Knowledge of another foreign language"))
i <- 1
while(i <= ncol(competence_bachelor_dich)) {
  competence_bachelor_dich[[i]] = factor(competence_bachelor_dich[[i]],labels = c("insignificant", "2", "3", "4", "5", "6", "7", "8", "9", "very relevant"), levels = c(1:10))
  levels(competence_bachelor_dich) <- list("0" = c("insignificant", "2", "3"), "1" = c("8", "9", "very relevant")) # set levels
  i <- i + 1
}
competence_bachelor_dich_plot <- likert(competence_bachelor_dich)
p <- plot(competence_bachelor_dich_plot, centered = FALSE, include.histogram = FALSE) + ggtitle("How do you rate your skills gained with the Bachelor's?*") + theme(axis.text.y = element_text(colour = "black"), axis.text.x = element_text(colour = "black")) + theme(legend.key.size = unit(0.02,"npc"))+guides(fill = guide_legend(""))
g <- arrangeGrob(p, sub = textGrob("*Order of questions was randomized and only extremes labeled in online questionaire.", x = 0, hjust = -0.1, vjust = 0.1, gp = gpar(fontface = "italic", fontsize = 10)))
print(p)
ggsave((filename = "competence_bachelor_dich.pdf"), scale = 1, width = par("din")[1], height = par("din")[2], units = c("in", "cm", "mm"), dpi = 300, limitsize = TRUE, g)

一种可能性是将变量转换为factor ,并将levels属性设置为命名列表,指定如何重命名/重新组织级别。

# a minimal version of your variable
x <- c("insignificant", "2", "3", "4", "5", "6", "7", "8", "9", "very relevant")

# convert to factor
x2 <- as.factor(x)

# set levels
levels(x2) <-list("0" = c("insignificant", "2", "3"),
                  "1" = c("8", "9", "very relevant"))
# [1] 0    0    0    <NA> <NA> <NA> <NA> 1    1    1 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM