dplyr重命名“找不到对象”

时间:2018-12-21 17:49:50

标签: r dplyr rename

当我尝试在dplyr中重命名多个列时,出现关于新名称的“找不到对象”错误。

我正在使用select创建一个新的数据框,然后我想更改4:8列的名称。

commute_mode<-select(commute,geoid,GEO.id2,display_label,HD01_VD26,HD01_VD37,HD01_VD68,HD01_VD113,HD01_VD125) %>%
  rename(HD01_VD26 = drive, HD01_VD37 = carpool,HD01_VD68 = public_trans,HD01_VD113 = walk, HD01_VD125=bike_other)

但是我得到

Error in .f(.x[[i]], ...) : object 'drive' not found

1 个答案:

答案 0 :(得分:2)

正如一些注释中所指出的那样,需要在SUM_JOB1 = g.Any(gs => gs.JOB1 != null) ? g.Sum(gs => gs.JOB1) : null 函数中交换变量的新名称和旧名称。

但是也要注意,您可以单独使用select()来选择和重命名变量(如果保留所有列并仅重命名某些列,最好使用select())。因此,您只需拥有rename()即可代替笨拙的mydata %>% select(old_var1, old_var2) %>% rename (new_var1 = old_var1, new_var2 = old_var2)。就您而言,这看起来像:

mydata %>% select(new_var1 = old_var1, new_var2 = old_var2)

这是commute_mode <- commute %>% select(geoid, GEO.id2, display_label, drive = HD01_VD26, carpool = HD01_VD37, public_trans = HD01_VD68, walk = HD01_VD113, bike_other = HD01_VD125) 命令的重要功能,始终最好使内容尽可能简洁!

有关详细说明,您可以查看https://dplyr.tidyverse.org/reference/select.html