gpt4 book ai didi

r - 在 R 中编码缺失数据

转载 作者:行者123 更新时间:2023-12-02 06:20:27 27 4
gpt4 key购买 nike

我有一个数据集,其中的数据检查显示以下一些内容,所有这些都应该丢失

'missing'
'unknown'
'uncoded'

我认为我可以用“NA”替换所有出现的这些是否正确?这是首选的方式吗?

var[var=='missing'] <- NA
var[var=='unknown'] <- NA
var[var=='uncoded'] <- NA

最佳答案

您展示的内容是可行的,但您可以将代码简化为通过 %in% 二元运算符进行比较的单个调用。这是一个使用一些虚拟数据的示例:

set.seed(1)
var <- factor(sample(c("missing","unknown","uncoded", 1:4), 100, replace = TRUE))

这给了我们一个这样的因子向量:

> head(var)
[1] unknown uncoded 2 4 unknown 4
Levels: 1 2 3 4 missing uncoded unknown
> table(var)
var
1 2 3 4 missing uncoded unknown
14 15 17 13 10 18 13

要将所有编码为 c("missing","unknown","uncoded")NA 的所有值,我们一次性完成:

var2 <- var ## copy for demo purposes, but you can over write if you wish
var2[var2 %in% c("missing","unknown","uncoded")] <- NA

给出

> var2[var2 %in% c("missing","unknown","uncoded")] <- NA
> head(var2)
[1] <NA> <NA> 2 4 <NA> 4
Levels: 1 2 3 4 missing uncoded unknown
> table(var2)
var2
1 2 3 4 missing uncoded unknown
14 15 17 13 0 0 0

注意原始关卡是如何保留的。如果您想删除这些级别,那么我们可以将 droplevels() 函数应用于 var2:

var2 <- droplevels(var2)

给出

> head(var2)
[1] <NA> <NA> 2 4 <NA> 4
Levels: 1 2 3 4
> table(var2)
var2
1 2 3 4
14 15 17 13

另请注意,默认情况下 NA 不会显示在表格输出中,但我们对此进行了纠正以向您展示它们仍然存在:

> table(var2, useNA = "ifany")
var2
1 2 3 4 <NA>
14 15 17 13 41

关于r - 在 R 中编码缺失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11325708/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com