首页 > 解决方案 > 如何在 R 中将 tibble 的多个变量变异为相同的值

问题描述

我想改变列 2 到 4 t 的值NA。我尝试使用mutate across没有成功。

library(tidyverse)

df <- tibble(year = 2020, a = 1, b = 2, c = 3)


df %>% mutate(across(c(2:4), is.na))
#> # A tibble: 1 x 4
#>    year a     b     c    
#>   <dbl> <lgl> <lgl> <lgl>
#> 1  2020 FALSE FALSE FALSE

# But this gives an error because NA is not a function
# df %>% mutate(across(c(2:4), NA))
Created on 2021-10-30 by the reprex package (v2.0.1)

标签: racross

解决方案


使用匿名函数或~.

library(dplyr)

df %>% mutate(across(c(2:4), ~NA))

#   year a     b     c    
#  <dbl> <lgl> <lgl> <lgl>
#1  2020 NA    NA    NA   

在基础 R 中,您可以执行以下操作 -

df[2:4] <- NA

推荐阅读