gpt4 book ai didi

r - write.xlsx (openxlsx) 的编码问题

转载 作者:行者123 更新时间:2023-12-04 10:07:37 27 4
gpt4 key购买 nike

我使用 write.xlsx()函数(来自 openxlsx 包)将列表对象转换为 excel 电子表格,其中列表的每个元素都转换为 excel 文件的“工作表”。过去,此功能非常有用,我从未遇到过任何问题。我的理解是,这个包和功能特别不需要在计算机上进行任何特定的 Java 更新才能使其工作。

但是,最近我发现该函数正在产生错误。这是当我为列表运行 write.xlsx() 时它在控制台中的状态:

Error in gsub("&", "&", v, fixed = TRUE) : 
input string 5107 is invalid UTF-8

我已经确定了导致问​​题的数据帧,但我不确定如何确定数据帧的哪一部分导致了错误。

我什至继续使用 enc2utf8()特别是此数据框中所有列的函数,但我仍然遇到错误。我用过 substr()数据框本身的函数,它向我展示了第一个 n每列的字符,尽管我没有从输出中看到任何明显的问题。

我什至继续使用 install.packages()功能重新下载 openxlsx再次打包,以防有任何更新。

有谁知道我将如何确定错误的原因?它是包中写的功能吗?如果问题出在数据本身的编码上,是否会出现 enc2utf8()不足以解决问题?

谢谢!

最佳答案

我刚刚遇到了同样的问题。以此为基础 question ,您可以将数据框中的所有坏字符替换为:

library(dplyr)
df %>%
mutate_if(is.character, ~gsub('[^ -~]', '', .))

仅用于字符列,或:
df %>%
mutate_all(~gsub('[^ -~]', '', .))

对于所有列,然后使用 write.xlsx() 导出到 XLSX .

关于r - write.xlsx (openxlsx) 的编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52299696/

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