I'd like to fill the missing values of the variable xxx.2 following dataset x:
sample.code day.code var xxx.1 xxx.2
1 a a_1 rff 10 11
2 a a_1 drav 10 NA
3 a a_1 proint 15 15
4 a a_1 jock NA NA
5 a a_1 saf 8 8
6 a a_1 prut 9 NA
x <- data.frame(
sample.code = as.factor(c("a", "a", "a", "a", "a", "a")),
day.code = as.factor(c("a_1", "a_1", "a_1", "a_1", "a_1", "a_1")),
var = as.factor(c("rff", "drav", "proint", "jock", "saf", "prut")),
xxx.1 = c(10L, 10L, 15L, NA, 8L, 9L),
xxx.2 = c(11L, NA, 15L, NA, 8L, NA)
)
in order to obtain the following matrix:
sample.code day.code var xxx.1 xxx.2
1 a a_1 rff 10 11
2 a a_1 drav 10 10
3 a a_1 proint 15 15
4 a a_1 jock NA NA
5 a a_1 saf 8 8
6 a a_1 prut 9 9
so that the values of the column xxx.2 have to be filled by the value of the same row, reported in the variable xxx.1.
If both xxx.1 and xxx.2 are missing, I'd like to have NA for those samples.
I tried to use the following code:
while(length(ind <- which(data$Allele.2 == "")) > 0){
data$Allele.2[ind] <- data$Allele.1[ind]
}
but I didn't succed.
I'd be very grateful if anybody could be attend to this matter.