注意: 我希望这可能是一个重复的问题。但是,当我搜索答案时,我找不到答案,所以感谢您的耐心等待。
问题:当我使用dput()
将现有.txt
文件的某些行写入新的.txt
文件时,我看到了额外的,意外的字符,例如c(\
。
Repro步骤:
下载包含zip
的{{1}}文件,以便阅读:
.txt
解压缩文件:
download.file(url = "https://d396qusza40orc.cloudfront.net/dsscapstone/dataset/Coursera-SwiftKey.zip", "dataset.zip")
阅读几行以预览数据:
unzip(zipfile = "dataset.zip")
使用readLines("final/en_US/en_US.blogs.txt",n=2)
[1] "In the years thereafter, most of the Oil fields and platforms were named after pagan “godsâ€."
[2] "We love you Mr. Brown."
# Ignore the characters around "gods" for this discussion
:
dput()
从dput(readLines("final/en_US/en_US.blogs.txt",n=2),"dputtest.txt")
读取行并查看新字符:
dputtest.txt
可能的原因:我想知道这是否与文件编码有关,或者可能缺少必要的readLines("dputtest.txt")
[1] "c(\"In the years thereafter, most of the Oil fields and platforms were named after pagan “godsâ€.\", "
[2] "\"We love you Mr. Brown.\")"
参数。
如果您需要我的任何其他信息以了解问题或重现问题,请与我们联系。感谢。
答案 0 :(得分:2)
dput
输出对象的可解析表示,以便您可以将其反馈回R命令行并获取原始对象。例如:
dput(letters, "test.txt")
let <- eval(parse("test.txt"))
identical(let, letters) # TRUE
您可能想要的是writeLines
,write.table
或write
,具体取决于您的数据。
答案 1 :(得分:1)
我认为您应该使用writeLines()
而不是dput()
:
rr <- readLines("final/en_US/en_US.blogs.txt",n=2)
writeLines(rr,"output.txt")
答案 2 :(得分:0)
使用dput保存数据时,请使用dget将数据读回R.
txt <- c("First line", "Second line")
f <- tempfile()
dput(txt, f)
txt2 <- dget(f)
identical(txt, txt2)