使用'across'函数可以方便地对多个列进行相同的操作。在操作之前,我们可以使用'select'函数选择想要操作的列,并使用'is.numeric'函数选择其中的数字列。然后,可以使用'mutate'和'across'函数对这些列进行操作。

具体实现如下:

library(tidyverse)

# 创建一个包含NA值的数据框
df <- tibble(
  id = 1:5,
  x = c(1, 2, NA, 4, 5),
  y = c(NA, 2, 3, 4, 5),
  z = c('a', 'b', 'c', 'd', 'e')
)

# 选择数字列,并使用across函数填充NA值
df %>%
  select_if(is.numeric) %>% # 选择数字列
  mutate(across(everything(), ~ifelse(is.na(.), 0, .)))  # 填充NA值

# 输出结果如下:
# A tibble: 5 x 3
      x     y    id
  <dbl> <dbl> <int>
1     1     0     1
2     2     2     2
3     0     3     3
4     4     4     4
5     5     5     5

在这个例子中,我们选择数字列'x'和'y',并使用'across'函数将它们的NA值填充为0。因为'id'列不是数字列,所以它被排除在外。

R语言tidyverse中across函数:选择性操作数字列并填充NA值

原文地址: https://www.cveoy.top/t/topic/lCp4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录