是否有像 fill 这样的 R 函数,用于用字符作为 const 填充 NA

Is there an R function like fill for filling NA's with characters as const

我有一个 data.table 这样的:

missings_table = data.table( name = c("Jim","Paul",NA,"Sam"),
                         midterm = c(0,15,13,12),
                         final = c(0,NA,16,13));missings_table

我想做的与

类似
nafill(missings_table$final,type = "const", fill = 0)

但如果我尝试

nafill(missings_table$name,type = "const", fill = "name")

我明白了

'x' argument must be numeric type, or list/data.table of numeric types

谢谢:)

由于您的填充类型是不变的,您可以使用 tidyr::replace_na

tidyr::replace_na(missings_table, list(name='name', final = 0))
   name midterm final
1:  Jim       0     0
2: Paul      15     0
3: name      13    16
4:  Sam      12    13

很遗憾,nafill() 函数目前不支持字符数据类型。

因此,这里有一个 方法,用于将字符列中的 NA 替换为常量值:

missings_table[is.na(name), name := "name"]
   name midterm final
1:  Jim       0     0
2: Paul      15    NA
3: name      13    16
4:  Sam      12    13

您可以使用基本函数 is.na() 对此效果很好,并且是最简单的解决方案。

missings_table$name[is.na(missings_table$name)] <- "name"