r - 同时对多个因素的水平进行排序

标签 r data-wrangling

我有一个充满字符变量的数据集,我想将其转换为有序因子变量。我能够立即将所有变量转换为因子,但我尝试对它们进行排序 ("Stimme nicht zu", "Stimme eher nicht zu", "Stimme teilweise zu", "Stimme zu", "Stimme voll zu ”,“k.A.”) 没有成功。你有办法帮我解决吗?

这是我的代码和数据:

MD4[,1:10] <- lapply(MD4[1:10], factor)
MD4[,1:10] <- lapply(MD4[1:10], ordered(MD4[1:10],c("Stimme nicht zu", "Stimme eher nicht zu", "Stimme teilweise zu", "Stimme zu", "Stimme voll zu", "k. A.")))


structure(list(veränderung_imap_austausch.verstärkt.akteuren = c("Stimme teilweise zu", 
"Stimme zu", NA, NA, "Stimme teilweise zu", "Stimme zu", "Stimme zu", 
"Stimme teilweise zu", NA, NA, NA, NA, NA, NA, NA, "Stimme teilweise zu", 
NA, NA, NA, NA, NA, "Stimme zu", NA, NA, NA, NA, "Stimme teilweise zu", 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, "Stimme voll zu", NA, "Stimme zu", 
NA, NA, NA, NA, NA, "Stimme voll zu", "Stimme zu", NA, NA, NA, 
"Stimme zu", "Stimme teilweise zu", NA, NA, NA, NA, NA, NA, NA, 
NA, "Stimme voll zu", "Stimme teilweise zu", "Stimme zu", NA, 
NA, NA, "Stimme zu", "Stimme zu", NA, "Stimme nicht zu", "Stimme zu", 
NA, "Stimme teilweise zu", "Stimme zu", "Stimme teilweise zu", 
NA, NA, NA, "Stimme voll zu", "Stimme voll zu", "Stimme teilweise zu", 
NA, NA, NA, "Stimme voll zu", NA, "Stimme nicht zu", "Stimme zu", 
NA, "Stimme zu", NA, "Stimme zu", "Stimme zu", "Stimme zu", "Stimme teilweise zu", 
"Stimme teilweise zu", "Stimme teilweise zu", NA, "Stimme teilweise zu", 
"k. A.", "Stimme eher nicht zu"), veränderung_imap_austausch.verstärkt.ideen = c("Stimme voll zu", 
"Stimme zu", NA, NA, "Stimme teilweise zu", "Stimme zu", "Stimme zu", 
"Stimme eher nicht zu", NA, NA, NA, NA, NA, NA, NA, "Stimme zu", 
NA, NA, NA, NA, NA, "Stimme zu", NA, NA, NA, NA, "Stimme zu", 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, "Stimme voll zu", NA, "Stimme zu", 
NA, NA, NA, NA, NA, "Stimme zu", "Stimme zu", NA, NA, NA, "Stimme zu", 
"Stimme teilweise zu", NA, NA, NA, NA, NA, NA, NA, NA, "Stimme voll zu", 
"Stimme zu", "Stimme voll zu", NA, NA, NA, "Stimme zu", "Stimme zu", 
NA, "Stimme teilweise zu", "Stimme zu", NA, "Stimme eher nicht zu", 
"Stimme zu", "Stimme zu", NA, NA, NA, "Stimme voll zu", "Stimme voll zu", 
"Stimme teilweise zu", NA, NA, NA, "Stimme voll zu", NA, "Stimme zu", 
"Stimme zu", NA, "Stimme zu", NA, "Stimme teilweise zu", "Stimme voll zu", 
"Stimme zu", "Stimme teilweise zu", "Stimme zu", "Stimme zu", 
NA, "Stimme zu", "k. A.", "Stimme teilweise zu"), veränderung_imap_fortschritt.umsetzung = c("Stimme zu", 
"Stimme zu", NA, NA, "Stimme teilweise zu", "Stimme zu", "k. A.", 
"Stimme teilweise zu", NA, NA, NA, NA, NA, NA, NA, "Stimme zu", 
NA, NA, NA, NA, NA, "Stimme zu", NA, NA, NA, NA, "Stimme zu", 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, "Stimme zu", NA, "Stimme zu", NA, 
NA, NA, NA, NA, "Stimme voll zu", "Stimme teilweise zu", NA, 
NA, NA, "Stimme zu", "Stimme teilweise zu", NA, NA, NA, NA, NA, 
NA, NA, NA, "Stimme zu", "Stimme teilweise zu", "Stimme zu", 
NA, NA, NA, "Stimme zu", "Stimme zu", NA, "Stimme teilweise zu", 
"Stimme zu", NA, "Stimme teilweise zu", "Stimme teilweise zu", 
"Stimme zu", NA, NA, NA, "Stimme voll zu", "Stimme voll zu", 
"Stimme teilweise zu", NA, NA, NA, "Stimme voll zu", NA, "Stimme teilweise zu", 
"Stimme teilweise zu", NA, "Stimme zu", NA, "Stimme teilweise zu", 
"Stimme voll zu", "Stimme teilweise zu", "Stimme zu", "Stimme eher nicht zu", 
"Stimme teilweise zu", NA, "Stimme teilweise zu", "k. A.", "Stimme teilweise zu"
), veränderung_imap_neue.strukturen = c("Stimme zu", "Stimme zu", 
NA, NA, "Stimme teilweise zu", "Stimme zu", "Stimme zu", "Stimme teilweise zu", 
NA, NA, NA, NA, NA, NA, NA, "Stimme teilweise zu", NA, NA, NA, 
NA, NA, "Stimme teilweise zu", NA, NA, NA, NA, "Stimme teilweise zu", 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, "Stimme teilweise zu", NA, "Stimme zu", 
NA, NA, NA, NA, NA, "Stimme voll zu", "Stimme teilweise zu", 
NA, NA, NA, "Stimme zu", "Stimme teilweise zu", NA, NA, NA, NA, 
NA, NA, NA, NA, "Stimme zu", "Stimme zu", "Stimme teilweise zu", 
NA, NA, NA, "Stimme zu", "Stimme zu", NA, "Stimme teilweise zu", 
"Stimme zu", NA, "Stimme teilweise zu", "Stimme zu", "Stimme zu", 
NA, NA, NA, "Stimme voll zu", "Stimme zu", "Stimme teilweise zu", 
NA, NA, NA, "Stimme voll zu", NA, "Stimme voll zu", "Stimme teilweise zu", 
NA, "Stimme voll zu", NA, "Stimme teilweise zu", "Stimme voll zu", 
"Stimme teilweise zu", "Stimme eher nicht zu", "Stimme eher nicht zu", 
"Stimme eher nicht zu", NA, "Stimme eher nicht zu", "k. A.", 
"Stimme nicht zu"), veränderung_imap_zuständigkeiten.klarer = c("Stimme teilweise zu", 
"Stimme teilweise zu", NA, NA, "Stimme teilweise zu", "Stimme zu", 
"k. A.", "Stimme teilweise zu", NA, NA, NA, NA, NA, NA, NA, "Stimme eher nicht zu", 
NA, NA, NA, NA, NA, "Stimme teilweise zu", NA, NA, NA, NA, "Stimme teilweise zu", 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, "Stimme teilweise zu", NA, "Stimme zu", 
NA, NA, NA, NA, NA, "Stimme teilweise zu", "Stimme teilweise zu", 
NA, NA, NA, "Stimme teilweise zu", "Stimme teilweise zu", NA, 
NA, NA, NA, NA, NA, NA, NA, "Stimme teilweise zu", "Stimme teilweise zu", 
"Stimme zu", NA, NA, NA, "Stimme teilweise zu", "Stimme teilweise zu", 
NA, "Stimme zu", "Stimme teilweise zu", NA, "Stimme teilweise zu", 
"Stimme teilweise zu", "Stimme zu", NA, NA, NA, "Stimme voll zu", 
"Stimme zu", "Stimme teilweise zu", NA, NA, NA, "Stimme voll zu", 
NA, "Stimme eher nicht zu", "Stimme zu", NA, "Stimme teilweise zu", 
NA, "Stimme teilweise zu", "Stimme teilweise zu", "Stimme teilweise zu", 
"Stimme teilweise zu", "Stimme eher nicht zu", "Stimme eher nicht zu", 
NA, "Stimme zu", "k. A.", "Stimme eher nicht zu"), veränderung_imap_rollen.klarer = c("Stimme teilweise zu", 
"Stimme teilweise zu", NA, NA, "Stimme teilweise zu", "Stimme zu", 
"k. A.", "Stimme eher nicht zu", NA, NA, NA, NA, NA, NA, NA, 
"Stimme teilweise zu", NA, NA, NA, NA, NA, "Stimme teilweise zu", 
NA, NA, NA, NA, "Stimme eher nicht zu", NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, "Stimme zu", NA, "Stimme zu", NA, NA, NA, NA, NA, "Stimme teilweise zu", 
"Stimme nicht zu", NA, NA, NA, "Stimme teilweise zu", "Stimme teilweise zu", 
NA, NA, NA, NA, NA, NA, NA, NA, "Stimme teilweise zu", "Stimme teilweise zu", 
"Stimme nicht zu", NA, NA, NA, "Stimme zu", "Stimme teilweise zu", 
NA, "Stimme zu", "Stimme nicht zu", NA, "Stimme teilweise zu", 
"Stimme zu", "Stimme zu", NA, NA, NA, "Stimme voll zu", "Stimme zu", 
"Stimme teilweise zu", NA, NA, NA, "Stimme voll zu", NA, "Stimme eher nicht zu", 
"Stimme teilweise zu", NA, "Stimme teilweise zu", NA, "Stimme teilweise zu", 
"Stimme zu", "Stimme teilweise zu", "Stimme eher nicht zu", "Stimme teilweise zu", 
"Stimme teilweise zu", NA, "Stimme zu", "k. A.", "Stimme zu"), 
    veränderung_imap_digitale.lösungen = c("Stimme zu", "Stimme zu", 
    NA, NA, "Stimme voll zu", "Stimme zu", "Stimme zu", "Stimme zu", 
    NA, NA, NA, NA, NA, NA, NA, "Stimme teilweise zu", NA, NA, 
    NA, NA, NA, "Stimme zu", NA, NA, NA, NA, "k. A.", NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, "Stimme voll zu", NA, "Stimme zu", 
    NA, NA, NA, NA, NA, "Stimme voll zu", "Stimme zu", NA, NA, 
    NA, "Stimme zu", "Stimme teilweise zu", NA, NA, NA, NA, NA, 
    NA, NA, NA, "Stimme nicht zu", "Stimme teilweise zu", "Stimme zu", 
    NA, NA, NA, "Stimme voll zu", "Stimme voll zu", NA, "k. A.", 
    "Stimme voll zu", NA, "Stimme zu", "Stimme zu", "Stimme zu", 
    NA, NA, NA, "Stimme zu", "Stimme voll zu", "k. A.", NA, NA, 
    NA, "Stimme zu", NA, "Stimme nicht zu", "Stimme voll zu", 
    NA, "Stimme zu", NA, "Stimme zu", "Stimme voll zu", "Stimme voll zu", 
    "Stimme zu", "Stimme zu", "Stimme zu", NA, "Stimme zu", "k. A.", 
    "Stimme zu"), veränderung_imap_klarheit.prozesse = c("Stimme voll zu", 
    "Stimme teilweise zu", NA, NA, "Stimme zu", NA, NA, "Stimme zu", 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Stimme zu", 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, "Stimme zu", NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Stimme zu", 
    NA, NA, NA, NA, NA, NA, "Stimme teilweise zu", NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, "Stimme voll zu", NA, NA, "Stimme voll zu", "Stimme voll zu", 
    "Stimme teilweise zu", "Stimme zu", "Stimme zu", NA, "Stimme teilweise zu", 
    "k. A.", "Stimme zu"), veränderung_imap_weiterent.planung = c("Stimme voll zu", 
    "Stimme teilweise zu", NA, NA, "Stimme teilweise zu", NA, 
    NA, "Stimme teilweise zu", NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, "Stimme zu", NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    "Stimme voll zu", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, "Stimme zu", NA, NA, NA, NA, NA, 
    NA, "Stimme teilweise zu", NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Stimme zu", 
    NA, NA, "Stimme zu", "Stimme voll zu", "Stimme teilweise zu", 
    "Stimme zu", "Stimme zu", NA, "Stimme teilweise zu", "k. A.", 
    "Stimme zu"), veränderung_imap_arbeit.relfelktieren = c("Stimme zu", 
    "Stimme teilweise zu", NA, NA, "Stimme zu", NA, NA, "Stimme zu", 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Stimme zu", 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, "Stimme voll zu", NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Stimme voll zu", 
    NA, NA, NA, NA, NA, NA, "Stimme teilweise zu", NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, "Stimme zu", NA, NA, "Stimme teilweise zu", "Stimme voll zu", 
    "Stimme teilweise zu", "Stimme zu", "Stimme zu", NA, "Stimme zu", 
    "k. A.", "Stimme zu")), row.names = c(NA, -114L), class = c("tbl_df", 
"tbl", "data.frame"))

最佳答案

第二行代码应该是 lambda 函数

MD4[1:10] <- lapply(MD4[1:10], function(x) 
   ordered(x,c("Stimme nicht zu", "Stimme eher nicht zu",
   "Stimme teilweise zu", "Stimme zu", "Stimme voll zu", "k. A.")))

或者可以将级别指定为

lapply(MD4[1:10], ordered,
   c("Stimme nicht zu", "Stimme eher nicht zu",
  "Stimme teilweise zu", "Stimme zu", "Stimme voll zu", "k. A."))

关于r - 同时对多个因素的水平进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71990112/

相关文章:

r - 几何密度 : remove horizontal line at zero

R 合并 XTS 时间序列导致重复的时间

python - 使用 Pandas 在 Python 中读取多个 pandas DataFrame 并分配 dataframe 名称的优雅方法

r - 使用列表填充数据框的列

python - 如果列位于另一个 Spark Dataframe 中,Pyspark 将创建新列

R 质量保证技术

r - 在具有多个返回值的 r 中使用 ifelse

r - 按每行中 NA 的数量拆分数据帧

r - 根据引用日期时间过滤、分类和创建新变量

r - 如何确保3个单独的dfs仅包含相同的列?