我想使用我事先创建的项目用 fct_recode 重命名因子级别。我首先创建一些标签并将它们保存到一个列表中:
#Creating the Labels:
LabelsWithN <- c(
sprintf("Man(%s)", FreqGender["Man","Freq"]),
sprintf("Woman(%s)", FreqGender["Woman","Freq"]),
sprintf("Non-Binary(%s)", FreqGender["Non-Binary","Freq"]),
sprintf("Other(%s)", FreqGender["Other","Freq"]),
sprintf("Prefer Not To Disclose(%s)", FreqGender["Prefer not to disclose","Freq"])
)
这将创建一个包含“Man(105)”、“Woman(51)”等项目的 chr 列表。现在我想重新标记原始数据集中的因素(即“Man”->“Man(105)”)为了给图加标签。我想使用列表项(即 LabelsWithN[1])或直接使用创建字符串的函数(即 sprintf("Man(%s)", FreqGender["Man","Freq"])。
然后我尝试将列表项或函数输入到 fct_recode 中:
#Using the Labels:
DataSet %>%
mutate(`Gender. What_is_your_ge.._` = fct_recode(`Gender. What_is_your_ge.._`, LabelsWithN[1] = "Man", sprintf("Woman(%s)", FreqGender["Woman","Freq"]) = "Woman")) %>%
#THis is just the code for the graph:
ggplot(aes(x = `Gender. What_is_your_ge.._` , y = `Age. How_old_are_you?`, main = "Age Distribution By Gender")) +
geom_boxplot() +
xlab("Gender (n)") +
ylab("Age")
但是,这会产生:
"Unexpected '=' in:
"DataSet %>%
mutate(`Gender. What_is_your_ge.._` = fct_recode(`Gender. What_is_your_ge.._`, LabelsWithN[1] ="
我使用函数还是列表项都没有关系。
向量是一个因子,列表中充满了字符。如果我操纵代码将因子“man”重命名为“cat”(“cat”=“Man”),则代码可以正常工作。
如何处理列表项/将函数输入 fct_recode 以使其工作?另外,有人可以向我解释这里的问题是什么吗?如果我打印出 LabelsWithN[1] 我会打印出正确的字符串。
谢谢你和BW,
简