簡體   English   中英

R function 將多個因子水平定義為缺失

[英]R function to define several factor levels as missing

我有幾個級別為“無答案”和“不知道”的因素,我想將其定義為缺失。 但是,我為實現此目的而編寫的 function 不起作用,我不知道為什么。 例子:

y <- factor(c("a", "b", "c", "Don´t know", "No answer"))
z <- factor(c("a", "b", "c", "Don´t know", "No answer"))
y

[1] a          b          c          Don´t know No answer 
Levels: a b c Don´t know No answer

將單個變量的級別定義為缺失確實有效

levels(y)[levels(y)=="Don´t know"|levels(y)=="No answer"]<- NA
y
[1] a    b    c    <NA> <NA>
Levels: a b c

但是,應用 function 不會。

nafac <- function(x)
{
levels(x)[levels(x)=="Don´t know"|levels(x)=="No answer"]<- NA
}
nafac(z)
z
[1] a          b          c          Don´t know No answer 
Levels: a b c Don´t know No answer

function 有什么問題? 謝謝!

我們可以簡單地添加return以返回更新的向量;

nafac <- function(x){
levels(x)[levels(x)=="Don´t know"|levels(x)=="No answer"]<- NA
return(x)
}

nafac(z)

output;

a b c <NA> <NA>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM