R语言中对数据框的列名重命名的实现

时间:2021-05-20

报错类型

Error: All arguments must be named

plyr中的rename和dplyr中的rename用法是不同的.

plyr::rename

rename(data, c(old=new))

dplyr::rename

rename(data, new = old)

Example

比如, 默认的是plyr的rename, 运行下面命令, 会报错:

d <- data.frame(old1=1:3, old2=4:6, old3=7:9)dlibrary(tidyverse)rename(d, c("old2"="two", "old3"="three"))rename(d, c(old2="two", old3="three"))

结果

> d <- data.frame(old1=1:3, old2=4:6, old3=7:9)
> d
old1 old2 old3
1 1 4 7
2 2 5 8
3 3 6 9
> library(tidyverse)
> rename(d, c("old2"="two", "old3"="three"))
Error: All arguments must be named
> rename(d, c(old2="two", old3="three"))
Error: All arguments must be named

正确的打开方式:

d <- data.frame(old1=1:3, old2=4:6, old3=7:9)drename(d, two=old2, three=old3)

结果:

> d <- data.frame(old1=1:3, old2=4:6, old3=7:9)
> d
old1 old2 old3
1 1 4 7
2 2 5 8
3 3 6 9
> rename(d, two=old2, three=old3)
old1 two three
1 1 4 7
2 2 5 8
3 3 6 9

或者使用plyr按第一种方式修改:

d <- data.frame(old1=1:3, old2=4:6, old3=7:9)dlibrary(tidyverse)plyr::rename(d, c("old2"="two", "old3"="three"))plyr::rename(d, c(old2="two", old3="three"))

结果:

> d <- data.frame(old1=1:3, old2=4:6, old3=7:9)
> d
old1 old2 old3
1 1 4 7
2 2 5 8
3 3 6 9
> library(tidyverse)
> plyr::rename(d, c("old2"="two", "old3"="three"))
old1 two three
1 1 4 7
2 2 5 8
3 3 6 9
> plyr::rename(d, c(old2="two", old3="three"))
old1 two three
1 1 4 7
2 2 5 8
3 3 6 9

搞定!!!

关键点, dplyr是新名称放在前面, 旧名称放在后面, 而且不用引号, 不用c(), 更方便!!!

另外, dplyr中的select还可以选择+ 该名称, 直接指定列数!!!

d <- data.frame(old1=1:3, old2=4:6, old3=7:9)dselect(d,one=1,three=3)

结果:

> d <- data.frame(old1=1:3, old2=4:6, old3=7:9)
> d
old1 old2 old3
1 1 4 7
2 2 5 8
3 3 6 9
> select(d,one=1,three=3)
one three
1 1 7
2 2 8
3 3 9

到此这篇关于R语言中对数据框的列名重命名的实现的文章就介绍到这了,更多相关R语言 列名重命名内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章