In this example, NA
is replaced with 0
in the last two columns.
ped
# id sire dam
# 1 1 6 11
# 2 2 NA 12
# 3 3 8 NA
# 4 4 9 NA
# 5 5 NA 15
ped[,(ncol(ped)-1):ncol(ped)] <- replace(ped[,(ncol(ped)-1):ncol(ped)], is.na(ped[,(ncol(ped)-1):ncol(ped)]), 0)
ped
id sire dam
1 1 6 11
2 2 0 12
3 3 8 0
4 4 9 0
5 5 0 15
ped[ped == 0] <- NA
ped[,(ncol(ped)-1):ncol(ped)] <- lapply(ped[,(ncol(ped)-1):ncol(ped)], function(x) replace(x, is.na(x), 0))
ped
id sire dam
1 1 6 11
2 2 0 12
3 3 8 0
4 4 9 0
5 5 0 15
For a data.table:
ped[ped == 0] <- NA
setDT(ped)
ped[,(ncol(ped)-1):ncol(ped) := lapply(.SD, function(x) replace(x, is.na(x), 0)), .SDcols = (ncol(ped)-1):ncol(ped)]
ped
id sire dam
<int> <num> <num>
1: 1 6 11
2: 2 0 12
3: 3 8 0
4: 4 9 0
5: 5 0 15