我正在从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'语句)?
谢谢!
您可以添加.default
参数,它将重新编码所有未明确命名的值:
dplyr::recode(income_2018$income, '1' = 1L, '2' = 2L, '3' = 3L, '4' = 4L, '5'
= 5L, '6' = 6L, .default = NA_integer_)
如果将数字转换为整数/数字,则应自动运行。
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