【问题标题】:write.xlsx in R giving incorrect NA in cellR中的write.xlsx在单元格中给出不正确的NA
【发布时间】:2016-10-19 08:19:26
【问题描述】:

我有一个 zoo 对象,其中包含一些 NA 值,我正在使用 xlsx 包中的 write.xlsx 命令将其写入 Excel 文件。但是,它没有在需要时在 Excel 文件中提供 NA,而是提供了 Excel 无法使用的 #N/A。这是正常行为吗?如果是这样,是否还有这种情况?

这是一个例子

y <- zoo(c(1:40), as.Date(1:40))
y[20] <- NA
write.xlsx(y, file = "test.xlsx")

非常感谢

【问题讨论】:

  • #N/A 是 excel 用作 NA 值的值。如果您在单元格中键入“=ISNA(#N/A)”,它将返回 TRUE。您是否可以提供任何其他详细信息以使您的错误可重现? stackoverflow.com/questions/5963269/…
  • 抱歉,看来该功能工作正常,我误解了 excel。问题是,一旦它在 Excel 中,当我尝试获取一行的平均值时,#N/A 会导致错误。以前,我有一个包含 NA 而不是 #N/A 的 CSV 文件,当我取行的平均值时,Excel 会在计算中忽略 NA。在 XLSX 文件中,情况似乎并非如此,如果您的数据范围包含任何 NA,调用 AVERAGE 函数的结果也是 #N/A
  • 我现在看到 xlsx 文件也会像以前一样忽略计算中的 NA 值,但不会忽略 #N/A 值。所以我想我现在正试图确定如何让 write.xlsx 输入 NA 而不是 #N/A。将在 cmets 中添加一个更好的示例

标签: r excel xlsx


【解决方案1】:

这可以通过使用 R 或 Excel 来完成

使用 xlsx 包,您可以将 NA 值保留为空白单元格

 write.xlsx(y, file = "test.xlsx", showNA=FALSE)

使用 excel 您可以忽略 NA 值。记得按ctrl +shift+enter

{=SUM(IF(ISNA(A3:D3),0,A3:D3))}

【讨论】:

  • 谢谢,我最终选择了第一个解决方案。
  • .@JonnoBourne - 使用showNA=FALSE 时是否可以用NA 代替空格?
  • 我在 atm 遇到一些 Java 脚本问题,所以无法检查,但您可以将 NA 值替换为字符串“NA”,然后保存。
【解决方案2】:

我必须将数据从 Excel 中导入到 R 中,然后频繁地再次返回。 Excel 中空单元格的标准是NA。为了避免得到#N/A,我使用了一个简单的解决方法,因此我不必在 Excel 中更改它(Ctrl+H 并将工作簿上的#N/A 替换为NA)。

在导出到 Excel 之前在 R 中试试这个:

y[is.na(y)] <- "NA"

Excel 不会知道实际 NA 和字符字符串 "NA" 之间的区别。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 2013-12-06
    • 1970-01-01
    相关资源
    最近更新 更多