微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 fct_recode 更改箱线图中的变量名称

如何解决使用 fct_recode 更改箱线图中的变量名称

我正在尝试使用 fct_recode() 更改变量名称,但出现错误,有人可以建议如何修复吗?

    bpdata <- read.table("Box.plot.chemical.txt",sep="\t",header=TRUE)
 
        bpdata[,"SampleType"] <- as.factor(bpdata[,"SampleType"])
    bpdata <- cbind(row.names(bpdata),bpdata)
    names(bpdata)[1] <- "sample"
   
    
    
             
  data <- melt(bpdata,id = 1:5,variable.name="name")
  data$SampleType <- factor (data$SampleType,levels = v_factor_levels)
    ########################################################
    
    #using forcats::fct_recode()
    data<-data %>%
      mutate(name = fct_recode(name,"Rice_P" = "Rice_P(mg/kg)","Rice_Mn" = "Rice_Mn(mg/kg)")) #"new value" = "old value"
    
    ########################################################
   

Error;

    Warning message:
    Problem with `mutate()` input `name`.
    ℹ UnkNown levels in `f`: Rice_P(mg/kg),Rice_Mn(mg/kg)
    ℹ Input `name` is `fct_recode(name,Rice_P = "Rice_P(mg/kg)",Rice_Mn = "Rice_Mn(mg/kg)")`.
    

解决方法

这完美地工作。我把旧名字放在第一位,但实际上,恰恰相反。

data<-data %>%
  mutate(name = fct_recode(name,`Rice_P(mg/kg)` = "Rice_P",`Rice_Mn(mg/kg)` = "Rice_Mn" )) # `new value` = "old value

非常感谢,

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。