dplyr 重命名“找不到对象”[关闭]
Posted
技术标签:
【中文标题】dplyr 重命名“找不到对象”[关闭]【英文标题】:dplyr rename "object not found" [closed] 【发布时间】:2019-05-22 04:06:11 【问题描述】:当我尝试重命名 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
【问题讨论】:
交换重命名顺序,新名称=当前。drive = HD01_VD26
您需要输入drive = HD01_VD26
而不是HD01_VD26 = drive
。这里调用rename
也是多余的,你可以简单地重命名select
里面的变量。
我在这里发表评论是因为问题已关闭,但是当您加载了多个具有不同rename
函数的包时,经常会出现此错误;使用dplyr::rename
函数修复神秘错误。
【参考方案1】:
正如一些 cmets 中所指出的,变量的新旧名称需要在您的 select()
函数中交换。
但也如前所述,您可以选择并使用select()
重命名变量(如果您保留所有列并仅重命名某些列,则rename()
是最好的)。因此,您只需拥有mydata %>% select(new_var1 = old_var1, new_var2 = old_var2)
,而不是笨重的mydata %>% select(old_var1, old_var2) %>% rename (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)
这是select()
命令的一个很棒的功能,并且总是尽可能的简洁!
更详细的解释可以查看https://dplyr.tidyverse.org/reference/select.html
【讨论】:
以上是关于dplyr 重命名“找不到对象”[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Access 数据库引擎找不到对象 - 对象是 Excel 命名范围