我有一个小标题,df
有一个因素A
,我希望:
1) 的副本C
, 和
2) 基于第二个变量B
.
目前我正在以这种迂回的方式进行操作。我对因子的条件重新编码感到非常困惑。我也看过dplyr
'srecode
,但找不到更聪明的方法。
library(tibble)
df <- tibble(
A = factor(c(NA, "b", "c")),
B = c(1,NA,3)
)
我最初的微博
df
#> # A tibble: 3 x 2
#> A B
#> <fctr> <dbl>
#> 1 <NA> 1
#> 2 b NA
#> 3 c 3
我当前解决方案中的第 1 步
df$C <- with(df, ifelse(is.na(B), 'B is NA', A))
df
#> # A tibble: 3 x 3
#> A B C
#> <fctr> <dbl> <chr>
#> 1 <NA> 1 <NA>
#> 2 b NA B is NA
#> 3 c 3 2
我当前解决方案中的第 2 步
df$C <- dplyr::recode_factor(df$C, '2' = 'c')
df
#> # A tibble: 3 x 3
#> A B C
#> <fctr> <dbl> <fctr>
#> 1 <NA> 1 <NA>
#> 2 b NA B is NA
#> 3 c 3 c
我该怎么做?