如何将R语言dput输出保存至TXT文件(大数据集场景)
解决R语言大数据集dput输出保存乱码问题
问题原因
你之前的操作逻辑有误:capture.output(dput(final))得到的是文本字符串向量,但saveRDS()是用来保存R专属的二进制对象格式,用普通文本编辑器打开二进制文件自然会显示乱码。而且这完全没必要绕弯子,直接用dput的文件写入功能即可。
正确解决方案
方案1:直接用dput写入文本文件(推荐)
不需要额外捕获输出,直接让dput把内容写入txt文件,生成的是可读的纯文本:
# 针对你的大数据集data_2 dput(data_2, file = "data_2_dput.txt")
之后直接打开data_2_dput.txt就能看到完整的dput输出,也可以把文件里的内容复制出来,在其他R会话里用dget()还原数据集:
# 还原数据集 restored_data <- dget("data_2_dput.txt")
方案2:如果已经用capture.output得到字符串,用writeLines保存
要是你已经生成了attempt这个字符串向量,别用saveRDS,改用writeLines()写入文本文件:
attempt <- capture.output(dput(data_2)) writeLines(attempt, "data_dput.txt")
这样生成的文件也是正常可读的纯文本,不会出现乱码。
补充说明
saveRDS()适合保存需要在R内部复用的复杂对象(比如模型、自定义函数),读取用readRDS(),它不是用来保存纯文本的。- 10万行的数据集用dput生成的文本文件会比较大,但完全可以正常写入和读取,不用担心内容过多的问题。
内容的提问来源于stack exchange,提问作者stats_noob
相关产品推荐
相关产品推荐

