x[is.na(x)] <- na.string 中的错误:将数据框导出到 R 中的 openxlsx 时,替换长度为零



当我试图将带有库openxlsx的数据帧导出到Excel时遇到问题。当我尝试时,发生了这个错误:

openxlsx::write.xlsx(usertl_lp, file = "Mi_Exportación.xlsx")

x中的错误[is.na(x(]<-na.string:替换的长度为零

我在数据帧中遇到了类似的问题,但在我的情况下,我使用的是相关的openxlsx::writeData。数据帧是使用sapply生成的,其函数可能会因为数据而传递错误。因此,当生成错误时,我编码为用NA填充。最后我把NaNNA放在同一列。

对我有效的是在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

最新更新