dplyr 中的重命名功能不起作用

标签 r data-cleaning

正如这篇文章的标题所暗示的,我正在尝试重命名数据框中的一些列,但代码似乎不适合我。没有错误消息。所以,我想知道我是否做错了什么或错过了什么。这是 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_NAMETIME_PERIOD 重命名为 Countryyear

最佳答案

您的代码对我来说工作正常,但我认为您必须分配 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"

关于dplyr 中的重命名功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39673738/

相关文章:

r - 如何正确使用testthat Expect_error()?

R:为什么我在将列转换为因子后没有得到类型或类 "factor"?

android - 如何在显示到 Android 中的 webview 之前清除 html 页面?

pandas - 删除非英文数据

Python 或 awk/sed 用于清理数据

使用 replace_with_na 函数用 NA 替换范围外的值

r - 覆盖 R 的不完整错误消息

r - 性能提升

python - 根据多列条件替换 Pandas 中的 NaN

r - 使用 dplyr 进行线性插值,但跳过具有所有缺失值的组