当我试图将带有库openxlsx
的数据帧导出到Excel时遇到问题。当我尝试时,发生了这个错误:
openxlsx::write.xlsx(usertl_lp, file = "Mi_Exportación.xlsx")
x中的错误[is.na(x(]<-na.string:替换的长度为零
我在数据帧中遇到了类似的问题,但在我的情况下,我使用的是相关的openxlsx::writeData
。数据帧是使用sapply
生成的,其函数可能会因为数据而传递错误。因此,当生成错误时,我编码为用NA
填充。最后我把NaN
和NA
放在同一列。
对我有效的是在writeData
之前进行以下治疗:
df[is.na(df)]<-''
因此,对于您的问题,以下方法可能有效:
df[is.na(df)]<-''
openxlsx::write.xlsx(as.data.frame(df), file = "df.xlsx", colNames = TRUE, rowNames = FALSE, append = FALSE)
usertl_lp_clean <- usertl_lp %>% mutate(across(where(is.list), as.character))
openxlsx::write.xlsx(usertl_lp_clean, file = "Mi_Exportación.xlsx")
此错误可能是由包含矢量的单元格引起的。因此,使用across
将矢量修改为字符。我把这个贴在这里是为了其他需要的人。
我认为您正在从同一个包中寻找writeData
函数。从同一个软件包中检出writeFormula
,甚至从writexl
软件包中查出write_xlsx
。