«Если ошибка» с использованием таблицы данных в «R»

Я пытаюсь заменить NA в наборе данных, используя «ключ». «Ключ» представляет сходство, основанное на некоторых факторах.

Например, в приведенном ниже наборе данных NA в строке 5 можно заменить на 1, 0 или 1 в строках 1, 2 и 6 соответственно.

Код, который у меня есть ниже, отлично работает, если это не ошибки. Например, ошибка NA в строке 3, потому что на основе ключа нет похожих строк. Я хотел бы ввести что-то, чтобы сказать: «Если ошибка» (например, в Excel), замените этот NA (не все остальные), используя другой ключ, который я укажу.

> s3ITR
  Index Country Age Time Charity
1     1  France  30   40       1
2     2  France  30   40       0
3     3  France  30   50      NA
4     4 Germany  30   40       0
5     5  France  30   40      NA
6     6  France  30   40       1
7     7 Germany  30   40       1
8     8 Germany  30   40       1

DT <- data.table(s3ITR, key = "Country,Age,Time")
DT[, Impute := sample(na.omit(Charity), length(Charity), replace = T), by = key(DT)] 
DT[!is.na(Charity), Impute := Charity]
DT[order(Index)]
S3<-mydf
S3$Charity <- DT$Impute

Я новичок в 'R', есть идеи?


person user3154267    schedule 10.02.2014    source источник
comment
Вы проверили «tryCatch»?   -  person Avinash    schedule 10.02.2014
comment
Вы можете сначала ввести строки с уникальной страной/возрастом/временем, а затем использовать свой код для других значений NA.   -  person Roland    schedule 10.02.2014