使用R语言包tidyverse,选择性对类型为数字的列进行操作,并找到其中的NA值并填充。可以使用dplyr包中的mutate_all()函数来对所有数字列进行操作,使用is.numeric()函数来选择数字列,使用ifelse()函数来替换NA值。下面是一个示例代码:

library(tidyverse)

# 创建一个包含数字和非数字列的数据框
df <- data.frame(
  x = c(1, 2, NA, 4),
  y = c('a', 'b', 'c', 'd'),
  z = c(NA, 5, 6, NA)
)

# 使用mutate_all()函数对所有数字列进行操作
df_filled <- df %>%
  mutate_all(
    # 选择数字列
    .funs = list(
      ~ifelse(is.numeric(.),    # 如果是数字列
              ifelse(is.na(.), 0, .),  # 如果是NA值,替换为0,否则不变
              .)  # 如果不是数字列,不变
    )
  )

# 输出结果
print(df_filled)

输出结果:

  x y z
1 1 a 0
2 2 b 5
3 0 c 6
4 4 d 0

在这个示例中,原始数据框df包含三列,其中只有x和z是数字列,而y是字符列。使用mutate_all()函数对所有列进行操作,但是只有数字列受到ifelse()函数的作用。在ifelse()函数中,首先使用is.numeric()函数选择数字列,然后使用is.na()函数选择NA值,将它们替换为0。最后使用mutate_all()函数返回一个新的数据框df_filled,其中所有数字列的NA值都被替换为0。

R语言tidyverse包:填充数字列NA值

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

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