首页 > 解决方案 > dplyr 中的重命名错误:名称必须是唯一的

问题描述

尽管有唯一的名称,但dplyr::rename会中断并给出“错误:名称必须是唯一的”。我知道我可以选择用其他方法重命名,例如:

rename <- function(dat, oldnames, newnames) 
{  datnames <- colnames(dat)
   datnames[which(datnames %in% oldnames)] <- newnames
   colnames(dat) <- datnames
   dat
 }

这是我的代码:

df1 <- dplyr::rename(df,
  "Language1"="Language",
  "RESPAge"="Age...31",
  "ADMIN1Name"="ADM1_NAME",
  "RESPSex"="Gender...42",
  "HHSize"="RspIsHoH",
  "HWaterSRC"="WaterSource",
  "NoteFCS"="Note FCS",
  "FCSStap"="Staples",
  "FCSPulse"="Pulses",
  "FCSDairy"="Dairy",
  "FCSPr"="Proteins",
  "FCSVeg"="Veg",
  "FCSFruit"="Fruits",
  "FCSFat"="Fats",
  "FCSSugar"="Sugars",
  "noterCSI"="note_Rcsi",
  "rCSILessQlty"="LessExpensiveFood",
  "rCSIBorrow"="BorrowOrHelp",
  "rCSIMealSize"="LimitPortionSize",
  "rCSIMealNb"="ReduceNumMeals",
  "rCSIMealAdult"="RestrictConsumption")

但我想为此使用 dplyr。我认为这是由于其他加载的包引起的冲突,并尝试仅加载 readxl(用于读取数据)和 dplyr 但它没有改变结果。

标签: rdplyr

解决方案


数据框有一列(索引)没有导致代码中断的标题。删除列解决了挑战。


推荐阅读