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

标签 r list encoding export openxlsx

我使用 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/

相关文章:

r - R中的pivot_wider删除我需要的变量

r - 如果我的分组变量是一个因素,我如何生成按组汇总的统计数据?

c - 如何将 Unicode 转义字符转换为 utf8?

google-chrome - chrome 如何建立正确的字符编码?

R rCharts - 当 x 轴值为日期时 slider 不会出现

html - 编织 HTML - 从错误中恢复?

c++ - 链接列表中的频率

python - 如何在 numpy 二维数组中存储列表?

scala - 无 :List[Int] as parameter

apache-spark - 读取spark中的字节列