dat <- structure(list(missing = c(2166541L, 2166541L, 2166541L, 2166541L, 2166541L, 2166541L, 2166541L),
full = c(2166530L, 2166531L, 2120278L, 2166532L, 2166529L, 2166528L, 2120277L),
weight = c(0.682281314251013, 0.178850991915291, 0.0294579547230352, 0.0277997025189748, 0.0426425821406883, 0.0277997025189748, 0.0111677519320228)),
class = "data.frame", row.names = c(NA, -7L))
sum(dat$weight) # weights add up to 1
q.vec <- unique(dat$missing)
for(q in seq_along(q.vec)){
id <- q.vec[q]
sub.dat <- dat %>% dplyr::filter(missing == id)
print(sum(sub.dat$weight))
if(sum(sub.dat$weight) != 1) { print(id)}
}
I am not able to figure out why print(id)
is getting run in the above loop even though sum(sub.dat$weight) != 1
condition is not met.