处理R重新编码中缺少系统吗?

问题描述 投票:1回答:2

我正在从SPSS到R的飞跃,我想知道您如何处理系统缺失...

例如,如果我想将以下SPSS代码重写为R:

RECODE income (1 THRU 6 = copy) (else = SYSMIS) INTO income2

我能够编写以下重新编码:

income_2018$income2 <- dplyr::recode(income_2018$income, '1' = 1L, '2' = 2L, '3' = 3L, '4' = 4L, '5' 
= 5L, '6' = 6L)

我该如何处理系统缺失(SPSS代码中的'else'语句)?

谢谢!

r spss
2个回答
1
投票

您可以添加.default参数,它将重新编码所有未明确命名的值:

dplyr::recode(income_2018$income, '1' = 1L, '2' = 2L, '3' = 3L, '4' = 4L, '5' 
= 5L, '6' = 6L, .default = NA_integer_)

0
投票

如果将数字转换为整数/数字,则应自动运行。

income_2018$income <- as.integer(income_2018$income)
#Or
#income_2018$income <- as.numeric(income_2018$income)

将非数字转换为整数之前,将其转换为NA时将返回警告。

x <- c('1', '2', '4', '6', 'a')
as.integer(x)
#[1]  1  2  4  6 NA

警告消息:强制引入的NAs

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.