首页 > 解决方案 > R - 如何用 dplyr 中的变量名称替换变量的值

问题描述

library(tidyverse)
df = tribble(~a,~b,
             0 ,1,
             1 ,0)

我想要的结果:

 a  b
'' 'b'
'a' ''

如何用变量名称替换值?

标签: rdplyr

解决方案


如果我们需要将 1 替换为列名,将 0 替换为空白""(用相应的列名map2替换 1和 2""

library(tidyverse)
map2_df(df, colnames(df), ~  c('', .y)[.x +1])
# A tibble: 2 x 2
#   a     b    
#  <chr> <chr>
#1 ""    b    
#2 a     ""  

推荐阅读