繁体   English   中英

R 中数值的因素

[英]Factors to Numeric in R

我一直在关注这篇文章以了解如何在 R Studio 中将我的因子更改为数值。 有问题的因素确实有我自己放在那里的NA。 稍后我需要在tapply()代码中使用这个因素,并希望确保 NA 不会成为问题。

示例代码:

factor.1[2] <-NA
factor.1[7] <-NA
factor.1[12] <-NA

然后,按照链接帖子上的说明:

num.fact1 <- as.numeric(levels(factor.1))[factor.1]

我得到的“错误”是“强制引入的 NA”。 但无论如何,它确实让我继续。 现在,点击:

tapply(
    num.fact1,
    factor.2,
    mean, na.rm=TRUE
)

我认为 output 看起来不错/准确。 我想确保我遇到的“强制引入的 NA”错误不会成为问题,尤其是当我将此笔记本编织到 PDF 时。

在这种情况下,将 NA 分配给变量是无害的。 然而,警告的原因更令人担忧。 看这个例子:

factor.1 <- factor(c("5.6", "4.7", "10.1", "2.O", "3.6", "1.7"))
factor.1
# [1] 5.6  4.7  10.1 2.O  3.6  1.7 
# Levels: 1.7 10.1 2.O 3.6 4.7 5.6

它们看起来都像数字,对吧? 现在转换为数字:

num.fact.1 <- as.numeric(levels(factor.1))[factor.1]
# Warning message:
# NAs introduced by coercion

该消息警告您某些数据无法转换为数字,因此结果为 NA。 让我们检查一下:

data.frame(factor.1, num.fact.1)[which(is.na(num.fact.1) & !is.na(factor.1)), ]
#   factor.1 num.fact.1
# 5      2.O         NA

第 5 个数据是“2.O”而不是 2.0。 数据可能需要一些清理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM