as.numeric(c(1, 1.0, "1.0", TRUE))
会对TRUE
元素返回NA
的原因是因为在R语言中,as.numeric()
函数将非数值类型的数据转换为数值类型。当TRUE
被转换为数值时,它会被解释为1,而不是TRUE的数值表示。因此,as.numeric(TRUE)
的结果是1。
然而,在向量c(1, 1.0, "1.0", TRUE)
中,R会尝试将所有元素转换为同一类型。由于向量中包含字符类型的元素"1.0",R会尝试将所有元素转换为字符类型。在这个过程中,R会将TRUE
转换为字符类型的"TRUE"。因此,向量c(1, 1.0, "1.0", TRUE)
的类型将被解释为字符类型。
当我们尝试将字符类型的向量转换为数值类型时,R会将无法转换的元素设置为NA
(缺失值)。由于"TRUE"无法被解释为数值类型,因此as.numeric(c(1, 1.0, "1.0", TRUE))
会将"TRUE"转换为NA
。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云