在R中使用dplyr的mutate函数时如何指定自定义列名?
问题解决方法
错误原因
你在mutate()里多套了一层括号,导致dplyr将整个赋值表达式(difference_1 = CS7_end - CS7_start)当作新列名称,而非创建名为difference_1的列。另外你尝试的rename写法结构错误,管道符%>%不能嵌套在mutate()的括号内。
正确解法
方法1:直接在mutate中创建指定列名的新列
去掉mutate()里多余的外层括号,直接赋值即可生成目标列:
library(dplyr) it_cs7_fc <- it_cs7 %>% mutate(difference_1 = CS7_end - CS7_start)
方法2:修改已生成错误列名的数据集
如果已经得到带错误列名的数据集,可使用rename()修正,注意错误列名包含特殊字符,需要用反引号`包裹:
# 针对已存在错误列名的数据集 it_cs7_fc <- it_cs7_fc %>% rename(difference_1 = `(difference_1 = CS7_end - CS7_start)`)
内容的提问来源于stack exchange,提问作者Aravindan Kalai
相关产品推荐
相关产品推荐

