代码之家  ›  专栏  ›  技术社区  ›  Bae

用R中特定分布生成的随机数填充NA值

  •  0
  • Bae  · 技术社区  · 2 年前

    我想用R中特定分布生成的随机数填充NA值。我见过一些用均值插补NA值的方法,但没有见过用特定分布生成的一些数字插补。 例如,我有一个数据 df

    df <- data.frame(id = c(1,1,1,2,2,NA,2,3,NA,5,5,NA,9,9)) 显然存在一些NA值。我想用均匀分布生成的数字来代替它们。假设我想用统一(4,8)中的数字来插补NA。 有没有简单的方法?

    1 回复  |  直到 2 年前
        1
  •  0
  •   Mohamed Desouky    2 年前

    试试这个

    df$id <- ifelse(is.na(df$id) , runif(1,4,8) , df$id)
    
        2
  •  0
  •   Antreas Stefopoulos    2 年前

    另一种方法可以是,

    df[is.na(df$id)] <- runif(n = length(which(is.na(df$id))), min = 4,max = 8)