如何保存已修改变量类型的DataFrame(CSV等格式)
解决R中修改变量类型后保存CSV的问题
没问题!我帮你搞定这个保存的事儿~其实保存修改后的数据集非常简单,咱们一步步来:
第一步:先确认变量类型修改生效
首先得确保你对variable1的类型修改是成功的,比如你要把它改成因子型(factor),可以这么写:
# 修改variable1为factor类型 mydata$variable1 <- as.factor(mydata$variable1) # 如果要改成整数型:mydata$variable1 <- as.integer(mydata$variable1) # 如果要改成数值型:mydata$variable1 <- as.numeric(mydata$variable1)
改完之后再跑一遍str(mydata),确认variable1的类型已经变成你想要的了,这一步很重要,避免白忙活~
第二步:用write.csv()保存修改后的数据
R里最常用的保存CSV的函数就是write.csv(),直接用它就能把修改后的mydata存到本地,代码如下:
write.csv(mydata, file = "modified_mydata.csv", row.names = FALSE)
这里的参数解释一下:
file:填你要保存的文件名(比如我写的modified_mydata.csv),如果想指定保存路径,直接把路径加上就行,比如Windows下可以写"C:/Users/你的名字/Documents/modified_mydata.csv"(注意用正斜杠或者双反斜杠)row.names = FALSE:这个一定要加!不然保存的文件里会多一列行号,一般咱们不需要这个
更灵活的保存方式:write.table()
如果你的数据有特殊格式要求(比如分隔符不是逗号、不想让字符串被引号括起来),可以用write.table(),比如:
write.table(mydata, file = "modified_mydata.csv", sep = ",", dec = ".", row.names = FALSE, quote = FALSE)
sep = ",":指定分隔符为逗号,和CSV格式匹配dec = ".":指定小数点为点号quote = FALSE:去掉字符串周围的双引号,按需选择
完整操作示例
把整个流程串起来就是这样:
# 1. 读入原始CSV mydata <- read.csv("mydata.csv", header = TRUE, sep = ",", dec = ".") # 2. 查看初始变量类型 str(mydata) # 3. 修改variable1的类型(这里以factor为例) mydata$variable1 <- as.factor(mydata$variable1) # 4. 确认修改后的类型 str(mydata) # 5. 保存修改后的数据 write.csv(mydata, file = "modified_mydata.csv", row.names = FALSE)
小提醒
- 不知道文件存在哪?跑一遍
getwd()就能看到当前工作目录,文件默认存在这里 - 想改保存目录?用
setwd("你的目标文件夹路径")切换就行 - 如果修改类型时报错,大概率是数据里有不符合目标类型的值(比如转integer时出现了非数字字符),这时候要先清理数据再修改类型
内容的提问来源于stack exchange,提问作者Matúš Revák
相关产品推荐
相关产品推荐

