相关疑难解决方法(0)

如何在R数据帧中用零替换NA值?

我有一个数据框,有些列有NA值.

如何NA用零替换这些值?

r missing-data dataframe na imputation

673
推荐指数
18
解决办法
112万
查看次数

R:用向量中的项替换NA

我试图用我的数据中的一些缺失值替换来自类似组的平均值.

我的数据如下:

   X   Y
1  x   y
2  x   y
3  NA  y
4  x   y
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像这样:

  X   Y
1  x   y
2  x   y
3  y   y
4  x   y
Run Code Online (Sandbox Code Playgroud)

我写了这个,它有效

for(i in 1:nrow(data.frame){
   if( is.na(data.frame$X[i]) == TRUE){
       data.frame$X[i] <- data.frame$Y[i]
   }
  }
Run Code Online (Sandbox Code Playgroud)

但是我的data.frame几乎有五十万行,而for/if语句非常慢.我想要的是类似的东西

is.na(data.frame$X) <- data.frame$Y
Run Code Online (Sandbox Code Playgroud)

但这会导致不匹配的大小错误.似乎应该有一个命令来执行此操作,但我无法在SO或R帮助列表中找到它.有任何想法吗?

replace r missing-data imputation

8
推荐指数
2
解决办法
1万
查看次数

R dplyr - 如果将 NA 替换为 0

我有这个数据框

dtf <- data.frame(
    id = seq(1, 4),
    amt = c(1, 4, NA, 123),
    xamt = c(1, 4, NA, 123),
    camt = c(1, 4, NA, 123),
    date = c("2020-01-01", NA, "2020-01-01", NA),
    pamt = c(1, 4, NA, 123)
)
Run Code Online (Sandbox Code Playgroud)

如果 colname 是数字,我想替换所有 NA 值,在我的例子中是 amt、xamt、pamt 和 camt。我正在寻找 dplyr 方式。通常我会使用

replace(is.na(.), 0)
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为日期列。

r dplyr

1
推荐指数
1
解决办法
3799
查看次数

标签 统计

r ×3

imputation ×2

missing-data ×2

dataframe ×1

dplyr ×1

na ×1

replace ×1