重新编码数据帧 R 中的多列

标签 r replace dplyr recode

我正在尝试将 Y 转换为 1,以获得许多可能更改的列(例如,它可能高达 x20)。

下面是数据示例以及预期输出。

Data <- tibble(Date = seq.Date(as.Date('2019-01-01'),as.Date('2019-01-08'), by = "day"), 
               x1 = c("Y","","","Y","Y","","Y","Y"),
               x2 = c("","Y","Y","Y","Y","","Y","Y"))


Data_output <- tibble(Date = seq.Date(as.Date('2019-01-01'),as.Date('2019-01-08'), by = "day"), 
               x1 = c(1,0,0,1,1,0,1,1),
               x2 = c(0,1,1,1,1,0,1,1))

最佳答案

使用dplyr:

Data %>% 
  mutate_at(vars(contains("x")),~case_when(.=="Y" ~1,
                                           .=="" ~0))

或者按照@akrun的建议:

Data %>% 
  mutate_at(vars(contains("x")), ~as.integer(.=="Y"))  

结果:

# A tibble: 8 x 3
  Date          x1    x2
  <date>     <dbl> <dbl>
1 2019-01-01     1     0
2 2019-01-02     0     1
3 2019-01-03     0     1
4 2019-01-04     1     1
5 2019-01-05     1     1
6 2019-01-06     0     0
7 2019-01-07     1     1
8 2019-01-08     1     1

关于重新编码数据帧 R 中的多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58120579/

相关文章:

r - R 中用于 D 最优性的优化函数

javascript - 通用的 createPopup() 替代品?

r - case_when() 评估多个条件的问题

r - 设置 ggplot 标题以反射(reflect) dplyr 分组

r - 如何删除R中没有大写的单词?

r - 如何将二元组拆分为 n 列的列对和行对

php - preg_replace_callback 突出显示模式在结果中不匹配

c# - 我怎样才能加快这个循环?是否有一次替换多个术语的类?

R 从向量连接表列

python - Pandas 被意外的分隔符搞糊涂了