gpt4 book ai didi

r - write.csv() 从 Mac OS 写入的结果与从 Windows 10 写入的结果不同?

转载 作者:行者123 更新时间:2023-12-04 10:02:08 24 4
gpt4 key购买 nike

打印到 RStudio 控制台时看起来完全正常但写入 csv 并用 excel 打开时显示为奇怪字符的字符串。

可重现的例子

以下生成显示为字符串 "a wit" 的对象,然后将其写入 csv:

# install.packages("dplyr")
library(dplyr)

serialized_char <- "580a000000030003060200030500000000055554462d380000001000000001000080090000000661c2a0776974"

(string <- serialized_char %>%
{substring(., seq(1, nchar(.), 2), seq(2, nchar(.), 2))} %>%
paste0("0x", .) %>%
as.integer %>%
as.raw %>%
unserialize())
[1] "a wit"

write.csv(string, "myfile.csv", row.names=F)

这是从 Mojave 编写(并在 OSX Mojave 的 excel 中查看)时的样子 - 包含不需要的字符:

enter image description here

这是在 High Sierra 中编写的(并在 High Sierra 的 excel 中查看)- 包含不需要的字符:

enter image description here

什么时候是从 Windows 10 编写并在 Windows 10 上的 excel 中查看(看起来不错!):

enter image description here

这是从 Mojave 编写的,但在 Windows 10 上的 excel 中查看时 - - 仍然包含不需要的字符:

enter image description here

问题

我有很多上述形式的字符数据(写入 csv 并在 excel 中打开时看起来很奇怪的字符)- 如何以文本在 excel 中“正常”显示的方式清理这些数据。

我尝试过的

到目前为止我已经尝试了4件事

write.csv(string, "myfile.csv", fileEncoding = 'UTF-8')

Encoding(string) <- "latin-1"

Encoding(string) <- "UTF-8"

iconv(string, "UTF-8", "latin1", sub=NA)

最佳答案

问题不在于 R,而是 Excel。

Excel 对于平台的字符编码应该是什么有自己的想法。值得注意的是,即使在现代 macOS 上,它也坚持认为平台编码自然是 Mac Roman。而不是实际流行的 UTF-8。

默认情况下,该文件在 macOS 上被正确写入为 UTF-8。

要让 Excel 正确读取它,您需要选择"file"›“导入...”,然后按照导入向导的操作指定文件编码。

关于r - write.csv() 从 Mac OS 写入的结果与从 Windows 10 写入的结果不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61772227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com