im2*_*drf 6 encoding export r list openxlsx
我使用write.xlsx()函数(从openxlsx包中)将列表对象转换为Excel电子表格,其中列表的每个元素都转换为excel文件的"工作表".在过去,这个功能非常有用,我从未遇到过任何问题.据我所知,这个包和函数特别不需要在计算机上进行任何特定的Java更新以使其工作.
但是,最近我发现该函数产生错误.这是我在控制台中为列表运行write.xlsx()时所说的内容:
Error in gsub("&", "&", v, fixed = TRUE) :
input string 5107 is invalid UTF-8
Run Code Online (Sandbox Code Playgroud)
我已经确定了导致问题的数据帧,但我不确定如何识别数据帧的哪个部分导致错误.
我甚至继续将该enc2utf8()函数用于此数据框中的所有列,但我仍然遇到错误.我已经substr()在数据框本身上使用了这个函数,它向我展示n了每列的第一个字符,尽管我没有看到输出中有任何明显的问题.
我甚至继续使用该install.packages()功能再次重新下载openxlsx包,以防任何更新.
有谁知道如何确定错误的原因?这是函数,因为它写在包中?如果问题出在数据本身的编码中,那enc2utf8()还不足以解决问题吗?
谢谢!
我只是有同样的问题。基于此问题,您可以将数据框中的所有不良字符替换为:
library(dplyr)
df %>%
mutate_if(is.character, ~gsub('[^ -~]', '', .))
Run Code Online (Sandbox Code Playgroud)
仅用于字符列,或:
df %>%
mutate_all(~gsub('[^ -~]', '', .))
Run Code Online (Sandbox Code Playgroud)
所有列,然后使用导出到XLSX write.xlsx()。
| 归档时间: |
|
| 查看次数: |
2141 次 |
| 最近记录: |