是否有像 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()
函数目前不支持字符数据类型。
因此,这里有一个 data.table 方法,用于将字符列中的 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"
我有一个 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()
函数目前不支持字符数据类型。
因此,这里有一个 data.table 方法,用于将字符列中的 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"