繁体   English   中英

如何在 R 中将一个小标题的多个变量突变为相同的值

[英]How to mutate multiple variables of a tibble to the same value in R at nce

我想改变 2 到 4 t NA列的值。 我试图mutate across没有成功的情况下使用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)

使用匿名函数或~

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

如果我们需要类与每一列的输入相同,则将 ( * ) 与NA相乘,否则默认情况下NANA_logical_ ,当我们尝试更改这些列中的值时可能会发生冲突

library(dplyr)
df %>%
    mutate(across(2:4, `*`, NA))
# A tibble: 1 × 4
   year     a     b     c
  <dbl> <dbl> <dbl> <dbl>
1  2020    NA    NA    NA

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM