使用数据框(R)中的现有值填充N / A值

时间:2016-12-18 04:18:24

标签: r

我有一个包含一些空值的数据框:

A      B      C
1      Red    3 
2      Blue   4
3      Green  5
1      Red    ? 
2      Blue   ?
3      Green  ?

我想填写"?"具有相应的值(第一个?3,第二个?4和第三个?5)

1 个答案:

答案 0 :(得分:2)

可以使用data.table

完成此操作
library(data.table)
setDT(df1)[, C :=  C[C!="?"][1L] , by = B][, C := as.numeric(C)]
df1
#   A     B C
#1: 1   Red 3
#2: 2  Blue 4
#3: 3 Green 5
#4: 1   Red 3
#5: 2  Blue 4
#6: 3 Green 5

dplyr

的类似选项
library(dplyr)
df1 %>%
   group_by(B) %>%
   mutate(C = as.numeric(C[C!= "?"][1L]))

注意:我们假设“B”列为character