gpt4 book ai didi

用中位数替换 R 中所有变量的缺失值

转载 作者:行者123 更新时间:2023-12-02 01:01:19 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Median imputation using sapply

(2 个回答)


3年前关闭。




我必须用所有变量的中位数替换缺失值。
我知道如何分别为每个变量执行此操作。

df$x1=ifelse(is.na(df$x1),median(df$x1,na.rm=T),df$x1)

但是我有 21 个变量,必须对 x1-x20 中的 20 个变量执行替换。
如何一次替换 20 个变量的缺失值?
我不想创建 20 个字符串。

最佳答案

您可以使用 dplyr::mutate_atmedian 替换缺失值对于该列。 mutate_at提供灵活性(使用 start_with )选择以 X 开头的列,对其应用规则。

library(dplyr)

df %>% mutate_at(vars(starts_with("X")), funs(ifelse(is.na(.),median(., na.rm = TRUE),.)))

# ID X1 X2
# 1 a 1 21.0
# 2 b 2 22.0
# 3 c 7 23.0 << X1 was missing
# 4 d 7 24.0 << X1 was missing
# 5 e 7 25.0 << X1 was missing
# 6 f 6 26.0
# 7 g 7 24.5 << X2 was missing
# 8 h 8 24.5 << X2 was missing
# 9 i 9 29.0
# 10 j 10 30.0

样本数据:
df <- data.frame(ID=letters[1:10], X1 = 1:10, X2 = 21:30)
df$X1[3:5] <- NA
df$X2[7:8] <- NA

df
# ID X1 X2
# 1 a 1 21
# 2 b 2 22
# 3 c NA 23
# 4 d NA 24
# 5 e NA 25
# 6 f 6 26
# 7 g 7 NA
# 8 h 8 NA
# 9 i 9 29
# 10 j 10 30

关于用中位数替换 R 中所有变量的缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50437198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com