R语言tidyverse中across函数:选择性操作数字列并填充NA值
使用'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'列不是数字列,所以它被排除在外。
原文地址: https://www.cveoy.top/t/topic/lCp4 著作权归作者所有。请勿转载和采集!