正如这篇文章的标题所示,我正在尝试重命名我的数据框中的一些列,但代码似乎对我不起作用。没有错误消息。所以,我想知道我做错了什么或错过了什么。这是MWE。
install.packages("rsdmx")
install.packages("dplyr")
library(rsdmx)
library(dplyr)
#Download data
Assets.PIT <- readSDMX("http://widukind-api.cepremap.org/api/v1/sdmx/IMF/data/IFS/..Q.BFPA-BP6-USD")
Assets.PIT <- as.data.frame(Assets.PIT)
names(Assets.PIT)[10]<-"A.PI.T"
# Keep the required columns
A.port.inv.total<-Assets.PIT[c("WIDUKIND_NAME","REF-AREA","TIME_PERIOD","A.PI.T")]
所以在上面的代码中我想重命名A.port.inv.total
中的一些列,所以,我正在使用:
# Rename columns
rename(A.port.inv.total, Country=WIDUKIND_NAME, year=TIME_PERIOD)
但结果输出又是:
names(A.port.inv.total)
[1] "WIDUKIND_NAME" "REF-AREA" "TIME_PERIOD" "A.PI.T"
更新了澄清
我想将列向量WIDUKIND_NAME
和TIME_PERIOD
重命名为Country
和year
答案 0 :(得分:1)
您的代码对我很好,但我认为您必须分配rename
函数的结果:
rename(A.port.inv.total, Country=WIDUKIND_NAME, year=TIME_PERIOD)
> names(A.port.inv.total)
[1] "WIDUKIND_NAME" "REF-AREA" "TIME_PERIOD" "A.PI.T"
A.port.inv.total <- rename(A.port.inv.total, Country=WIDUKIND_NAME, year=TIME_PERIOD)
> names(A.port.inv.total)
[1] "Country" "REF-AREA" "year" "A.PI.T"