如何将具有缺失值的因子变量转换为数值变量?

  • 我将我的数据集(original.csv)加载到R:original < - read.csv(“original.csv”)
  • str(原始)显示我的数据集有16个变量(14个因子,2个整数)。 14个变量缺少值。 这是可以的,但最初的数字是3个变量,被称为因子。
  • 我在网上搜索并得到一个命令:as.numeric(as.character(original $ Tumor_Size))(Tumor_Size是一个被称为因子的变量)。
  • 顺便说一下,我的数据集中的缺失值标记为点(。)
  • 运行后:as.numeric(as.character(original $ Tumor_Size)),Tumor_Size的值被列出,最后出现一个警告信息:“由胁迫引入的NAs”出现。
  • 我预计运行上面的命令后,变量转换为数字,但第二个str(原始)表明我的猜测是错误的,Tumor_Size和另外两个变量是因素。 下面是我的数据集的样本:我的一个数据集
  • 我如何解决我的问题?


    这里至关重要的信息是如何在数据文件中对缺失值进行编码。 read.csv()的相应参数称为na.strings 。 所以如果使用点:

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

    我不是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)]<-"."
    

    希望这可以帮助。

    链接地址: http://www.djcxy.com/p/24951.html

    上一篇: How can I convert a factor variable with missing values to a numeric variable?

    下一篇: R: converting some levels of a factor to numeric