R 如何在fct_代码中使用列表项

R 如何在fct_代码中使用列表项,r,tidyverse,forcats,R,Tidyverse,Forcats,我想通过使用我事先创建的项目,使用fct_代码重命名因子级别。 我首先创建一些标签并将其保存到列表中: #Creating the Labels: LabelsWithN <- c( sprintf("Man(%s)", FreqGender["Man","Freq"]), sprintf("Woman(%s)", FreqGender["Woman","Freq"

我想通过使用我事先创建的项目,使用fct_代码重命名因子级别。 我首先创建一些标签并将其保存到列表中:

#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"])
)
然而,这会产生:

"Unexpected '=' in:
"DataSet %>%
  mutate(`Gender. What_is_your_ge.._` = fct_recode(`Gender. What_is_your_ge.._`, LabelsWithN[1] ="
不管我是使用函数还是列表项

向量是一个因子,列表中填充了字符。如果我操纵代码将因子“man”重命名为“cat”(“cat”=“man”),代码工作正常

如何对列表项进行寻址/将函数输入fct_重新编码以使其工作? 还有,有人能给我解释一下这里的问题是什么吗?如果我用n[1]打印标签,我会打印出正确的字符串

谢谢你和Bw


也许这会有帮助

x <- factor(c("apple", "bear", "banana", "dear")) # what you want to recode
levels <- c(fruit = "apple", fruit = "banana") # how you want to recode it
x <- fct_recode(x, !!!levels) # recoding it
x
x <- factor(c("apple", "bear", "banana", "dear")) # what you want to recode
levels <- c(fruit = "apple", fruit = "banana") # how you want to recode it
x <- fct_recode(x, !!!levels) # recoding it