r - 使用 fwrite 在 R 中包含字符字段的引号
问题描述
我在输出带有引号的数据表中的字符字段时遇到问题。我将 fwrite 函数与 data.table 包一起使用。
for (i in 1:length(mpfdf)){
fwrite(x[[i]], file = paste0('../',x[[i]]), row.names = F, col.names = T)
}
我的预期输出:
Header1,Header2,Header3
1,"abcd",5
我的实际输出:
Header1,Header2,Header3
1,abcd,5
5,bbbb,6
我也尝试使用以下引用参数:
for (i in 1:length(mpfdf)) {
fwrite(mpfdf[[i]], file = paste0('../',mpfs[[i]]), row.names = F, col.names = T, quote ="auto")
}
这给了我与上面相同的实际输出。
我还尝试了以下方法:
for (i in 1:length(mpfdf)) {
fwrite(mpfdf[[i]], file = paste0('../',mpfs[[i]]), row.names = F, col.names = T, quote =T)
}
但是,这也会使输出中的标题包含“”。
例如
"Header1","Header2","Header3"
1,"abcd",5
5,"bbbb",6
我确信有办法解决这个问题,但我对使用 R 进行数据操作还是比较陌生。提前谢谢了。
解决方案
您可以将引号添加到列中,然后fwrite()
使用 withquote = FALSE
以防止它添加额外的引号。
DT[, Header2 := paste0('\"', Header2, '\"')]
fwrite(DT, "test.csv", quote = FALSE)
输出
Header1,Header2,Header3
1,"abcd",5
5,"bbbb",6
可重现的数据:
DT <- fread(
"Header1,Header2,Header3
1,abcd,5
5,bbbb,6"
)
推荐阅读
- c# - 将 fody.costura 添加到项目后,在 prism WPF C# 中加载模块时出现问题
- javascript - ontransitionend 不触发/附加但 addEventListener 有效
- c - C中的逻辑运算符导致我的循环出现问题?
- ibm-mobilefirst - 从服务器下载更新后,mobilefirst ionic-cordova 应用程序中的直接更新失败?
- ruby-on-rails-3 - 未定义的方法 `total_pages' 用于#
- javascript - Windows 浏览器中文本/csv 文件的 MIME 类型错误
- npm - 检查 vuetify 的版本
- android - 从 Listview 的 url onclick 项目中流式传输音乐
- odoo - 为什么语法错误:在 odoo 9 中打印 QWEb (PDF) 时 JSON 中位置 0 的意外令牌 T?
- excel - 在 vba 编辑器中突出显示匹配的括号(括号)