【问题标题】:Converting factor variables to numeric ones by replacing blanks cells to NA or changing them to "." [duplicate]通过将空白单元格替换为 NA 或将它们更改为“。”将因子变量转换为数字变量。 [复制]
【发布时间】:2019-12-27 13:33:16
【问题描述】:
  1. 我想通过以下代码将一些因子变量转换为数值变量:

    df$col <- as.numeric(df$col)

  1. 我的数据集中的缺失值不是用点表示的(即“.”)。相反,它们是空白单元格。

  2. 因此,上面的代码为我的数据集中的每个空白单元格分配了一个数字(即“1”)。

  3. 我的问题是如何通过将空白单元格替换为 NA 或将它们更改为“.”来将因子变量转换为数值变量。

非常感谢。

【问题讨论】:

  • 请在guidelines之后编辑您的问题。
  • @jay.sf 这个问题解决了部分问题。有空白/NA 单元格需要考虑。如果你能找到一个重复的问题来回答从因子和空白单元格中强制转换的问题,我们可以这样关闭它。
  • @RomanLuštrik 这可能并不完全正确,因为这些“空白单元格”可能也被转换为因子水平。使用链接的答案应该正确产生NA

标签: r dataset missing-data


【解决方案1】:

解决此问题的正确方法是将 NA 用于缺失值。 为了将因子转换为数字,您必须首先强制转换为字符。但首先,用 NA 替换空白单元格。

x <- factor(c("1", ""))
x[x == ""] <- NA
as.numeric(as.character(x))
[1]  1 NA

【讨论】:

  • 试试as.numeric(as.character(factor(c("1", ""))))
  • 此代码还将值 1 赋予空白单元格。
  • @ND2020 在强制转换为数字之前,您是否将空白单元格转换为 NA?如果是的话,我想在这一点上看到一个可重现的例子。
  • @RomanLuštrik 我找到了一个函数来解决它。函数unfactor() 先转换为字符数据类型,然后再转换回数值。结果,空白单元格被替换为 NA。
猜你喜欢
  • 1970-01-01
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 2014-08-02
  • 1970-01-01
  • 2017-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多