首页 > 解决方案 > R为数据框保存新列名

问题描述

我是 R 的新手,主要来自 Python,并且仍处于我需要两者还是只需要 Python 的测试阶段。

我从 UCI 存储库导入了 iris 数据集并更改了列名,但是当我保存并再次加载它时,它没有新的列名。

# read in csv and change col names
iris = read.csv(file="/home/n/Desktop/stat3990/data/iris.data")
plot(iris[,3:4])

#install.packages("plyr")
library("plyr")
rename(iris, c("X5.1"="sepal.len", "X3.5"="sepal.wid", "X1.4"="petal.len", "X0.2"="petal.wid", "Iris.setosa"="class"))
save(iris, file="iris.rda")
load("iris.rda")

我尝试将数据保存为Rdata.csv但似乎没有人保存新的列名。

此外,这是一个如此著名的数据集,以至于列名一开始就如此令人困惑,这很奇怪,但这是另一个问题。

标签: rsave

解决方案


可能是问题是OP没有分配

iris <- plyr::rename(iris, c("X5.1"="sepal.len", "X3.5"="sepal.wid", 
        "X1.4"="petal.len", "X0.2"="petal.wid", "Iris.setosa"="class"))

通过赋值,原始对象中的列名发生了变化


有一个可重现的例子

data(iris)
iris1 <- plyr::rename(iris, c("Sepal.Length" = "X5.1", "Sepal.Width" = "X3.5")); 
save(iris1, file = "iris.rda")
load("iris.rda")

推荐阅读