【发布时间】:2018-04-05 06:30:50
【问题描述】:
我有一个 tibble,df,有一个因素,A,我希望:
1) C 和
的副本
2) 基于第二个变量 B 重新编码。
目前我正在以这种迂回的方式进行。我对因子的条件重新编码感到非常困惑。我也看了dplyr's recode,但找不到更聪明的方法。
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
我应该怎么做?
【问题讨论】: