在 R 中使用 is.na() 和 if_else() 将连续数据重新编码为分类数据

Recode continuous data into categorical data using is.na() and if_else() in R

我有一个数据框,其中一列同时包含连续数据和 NA。我想使用 if_else() 和 is.na() 将所有连续数据重新编码为一个级别的分类数据,将 NA 重新编码为另一个级别。我该怎么做?

示例数据框:

df<-tibble(id=1:10,score=c(3,1,-3,-9,NA,NA,12,NA,5,NA))

如何将所有数字重新编码为“结果”并将 NA 重新编码为“no_results”?

我提供了一个玩具示例来代替您描述的代码:

df <- data.frame(x = c(1,2,3,4,NA,NA,NA,NA))

在这里,我们有一个具有连续值和 NA 值的数据框,使用 dplyr,我们可以使用您的函数对“x”进行分类:

library(dplyr)
df <- df %>% 
mutate(new_data = if_else(is.na(x), "is NA", "is not NA"))

这会创建一个新列,将您的 NA 值归类为“是 NA”。