r语言write.xlsx在哪个包
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了r语言write.xlsx在哪个包相关的知识,希望对你有一定的参考价值。
参考技术A xlsx包。R是用于统计分析、绘图的语言和操作环境。根据查询相关资料显示r语言write.xlsx在xlsx包。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。write.xlsx的编码问题(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在哪个包的主要内容,如果未能解决你的问题,请参考以下文章