【问题标题】:How can I convert a factor variable with missing values to a numeric variable?如何将具有缺失值的因子变量转换为数值变量?
【发布时间】:2017-05-25 11:20:39
【问题描述】:
  1. 我将数据集 (original.csv) 加载到 R: 原始
  2. str(original) 表明我的数据集有 16 个变量(14 个因子,2 个整数)。 14 个变量有缺失值。没关系,但原来是数字的 3 个变量被称为因子。
  3. 我在网上搜索并得到一个命令:as.numeric(as.character(original$Tumor_Size)) (Tumor_Size 是一个变量,被称为因子)。
  4. 顺便说一下,我的数据集中的缺失值被标记为点 (.)
  5. 运行后:as.numeric(as.character(original$Tumor_Size)),列出了Tumor_Size的值,最后出现了一条警告消息:“NAs引入了强制” .
  6. 我预计在运行上述命令后,变量会转换为数字,但第二个 str(original) 表明我的猜测是错误的,并且 Tumor_Size 和另外两个变量是因素。下面是我的数据集示例: a piece of my dataset

我该如何解决我的问题?

【问题讨论】:

    标签: r


    【解决方案1】:

    我不是 100% 确定您的问题是什么,但也许这会有所帮助....

    original<-read.csv("original.csv",header = TRUE,stringsAsFactors = FALSE)
    original$Tumor_Size<-as.numeric(original$Tumor_Size)
    

    这将引入 NA,因为它无法将您的点 (.) 转换为数值。如果您尝试再次用点替换 NA,它将将该字段作为字符返回,为此您可以使用,

    original$Tumor_Size[is.na(original$Tumor_Size)]<-"."
    

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      这里的关键信息是缺失值在数据文件中的编码方式。 read.csv() 中的相应参数称为na.strings。所以如果使用点:

      original <- read.csv("original.csv", na.strings = ".")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多