R语言数据框列重命名报错:unused arguments问题排查
错误原因分析
参数语法完全错误:从你用管道符
%>%来看,应该是调用dplyr包的rename()函数,但你搞反了参数逻辑。dplyr的rename要求新列名 = 旧列名,不需要给新列名加引号。你写的"mom.loc.ret"="loc.ret"是把旧列名赋值给带引号的新列名,完全不符合函数要求,自然会报错。正确写法应该是mom.loc.ret = loc.ret(如果列名包含特殊字符,用反引号包裹:mom.loc.ret =loc.ret``)。包冲突问题:如果同时加载了plyr包,它的
rename()函数语法和dplyr完全不同(plyr要求用c(旧列名 = "新列名")的格式),此时R会优先调用plyr的rename,无法识别dplyr格式的参数,从而触发“unused arguments”错误。未加载目标包:如果没有提前加载dplyr或tidyverse包,直接用管道符调用
rename,可能会调用到其他环境下的同名函数(比如某些工具包的rename),这些函数不支持你写的参数格式,导致报错。
修正代码示例
用dplyr的正确写法:
# 先加载dplyr包 library(dplyr) # 执行重命名 your_data %>% rename(mom.loc.ret = loc.ret, mom.hedged.ret = hedged.ret)
若用plyr的写法(不建议和dplyr混用):
library(plyr) rename(your_data, c(loc.ret = "mom.loc.ret", hedged.ret = "mom.hedged.ret"))
内容的提问来源于stack exchange,提问作者Siddharth Somani
相关产品推荐
相关产品推荐

