R openxlsx包。 把NA写成空白?
我正在使用openxlsx包来读取和写入Excel文件。
我注意到,当我使用write.xlsx(MyData,file =“MyFile.xlsx”)将表格导出到Excel时,NAs显示为#NUM! 在Excel上打开该文件时。
有没有任何选项可以输出空白? 我一直在googlesearch,并尝试select,如showNA或保持,但他们似乎没有任何效果。
我无法理解downvote。 我以为有些人只是用一个选项就知道如何去做,而不需要每个NA都需要手动转换。
正如我认为这对其他用户可能是重要和有用的,我也曾经在openxlsx的github开发页面上询问过,他们回答说:
https://github.com/awalker89/openxlsx/issues/108#issuecomment-125142950
如果有人有兴趣,如果你更新到开发版本
devtools::install_github("awalker89/openxlsx")
你会得到这个function的支持。
现在的缺省行为是将NAs转换为空白如果我们想要#N / A,我们必须使用选项keepNA = TRUE选项keepNA = TRUE保持#N / A
require('openxlsx') df <- head(iris) df[2,3] <- NA df[2,5] <- NA df[3,5] <- NaN openXL(write.xlsx(df, file = tempdir()))
require('openxlsx') df <- head(iris) df[2,3] <- NA df[2,5] <- NA df[3,5] <- NaN openXL(write.xlsx(df, file = tempdir(), keepNA = TRUE))
好问题! 一个我一直在看。 我相信默认的行为是输出NA
值作为空白。 但是,正如您在示例代码中所显示的,您同时具有NA
和NaN
值。 列中出现一个或多个NaN
值将导致该列中的所有NA
和NaN
值在Excel中显示为#NUM!
。
要解决这个问题,请在导出文件之前用NA
replace文件中NaN
所有实例:
df[is.na(df)] = NA
当x是is.nan
时,请注意使用is.na
而不是is.nan。
请参阅: 如何在一个巨大的数据框中用零replaceNaN值?