r - 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
但似乎没有人保存新的列名。
此外,这是一个如此著名的数据集,以至于列名一开始就如此令人困惑,这很奇怪,但这是另一个问题。
解决方案
可能是问题是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")
推荐阅读
- css - CSS 未覆盖的页面顶部和底部的 Chrome 扩展
- python - IndexError:python中数组的索引太多
- python - 如何处理 MQTT 与一个客户端和 2 个服务器相互回复?
- javascript - 如何在点之间插入线
- django - Django Rest Framework:在不提供 pk 的情况下更新和删除当前用户
- javascript - 对动态添加的字段进行排序
- javascript - 在 x 轴上进行缩放工作,使用 y 轴自动缩放到可见图形段上显示的数据点
- hyperledger-fabric - 如何在区块链和超级账本结构中检测到区块链或世界状态中的数据篡改(已添加区块的数据)?
- javascript - 指数代码,我不了解代码行为
- java - java.sql.SQLException:jdbcTemplate 中带有 In 子句的更新查询的列类型无效