【问题标题】:read_excel recode number as na valueread_excel 将数字重新编码为 na 值
【发布时间】:2016-10-18 03:04:55
【问题描述】:

在使用readxl 包中的read_excel 函数从excel 文件导入数据时,我尝试为na 参数指定一个数字,但它不会重新编码缺失值。输入数据时使用了一个数值作为缺失的响应。

示例数据(在 r 而不是 excel 文件中):

missing <- data.frame(a = c(1, 2, 3, 4),
                      b = c(99, 2, 3, 4),
                      c = c(1, 99, 3, 4))

如果上述数据是一个单独的 excel 文件,我尝试像这样读取它:

data <- read_excel("C:/.../missing.xlsx", na = 99)

不是将 99 重新编码为 NA,而是将它们读取为数字。我希望看到这样的数据框,而不必使用单独的步骤来重新编码数据:

  a b c
1 1 NA 1
2 2 2 NA
3 3 3 3
4 4 4 4

【问题讨论】:

    标签: r import-from-excel recode readxl


    【解决方案1】:

    read_excel 正在寻找一个字符串。所以你只需要输入

    data &lt;- read_excel("C:/.../missing.xlsx", na = "99")

    【讨论】:

    • 我用小示例数据进行了尝试,它有效,但它不适用于包含 2000 多行和 7 列的数据集。
    • 这实际上可能与我要替换的数字有关。实际数据范围从 1 到 4,我的缺失值输入为 5。summary 函数只是说最大值是 5。当我这样做来替换 99 时,它可以工作。
    • 实际上,最后一个想法可能已经做到了。 “受保护的视图”会导致问题吗?这些文件是从互联网上下载的,我没有在excel中打开它们。我以为这只是一个 excel 的东西,但是当我打开文件并保存它们时它就起作用了。
    • 根据您要在数据集中上交 NA 的内容,您可以使用 data[data==99]&lt;-NA 或将 99 替换为您的号码。或者,如果您只是想在您命名为 data 的数据框中的特定列中用 NA 替换特定数字,例如列 b,您可以执行 data$b[data$b==99]&lt;-NA
    • 如果您能接受我的回答,那就太好了!
    猜你喜欢
    • 1970-01-01
    • 2015-03-28
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多