Hi Rui, Thank you for your suggestion which is very much appreciated. Unfortunately running this code produces the following error.
error in '$<-.data.frame' ('*tmp*', "mth", value = NA_real_) : replacement has 1 rows, data has 0 I'm sure there must be an elegant solution to this problem? Best wishes Graham On 6 Apr 2013, at 12:15, "Rui Barradas" <ruipbarra...@sapo.pt> wrote: > Hello, > > That's not a very good way of posting your data, preferably paste the output > of ?dput in a post. > Some thing along the lines of the following might do what you want. It seems > that the groups are established by 'dn' and 'obs' numbers. If so, try > > > # Make up some data > dat <- data.frame(dn = 4, obs = rep(1:5, each = 6), mth = NA) > dat$mth[6] <- 487 > dat$mth[9] <- 488 > dat$mth[18] <- 488 > dat$mth[21] <- 489 > dat$mth[30] <- 489 > > > sp <- split(dat, list(dat$dn, dat$obs)) > names(sp) <- NULL > tmp <- lapply(sp, function(x){ > idx <- which(!is.na(x$mth))[1] > x$mth <- x$mth[idx] > x > }) > do.call(rbind, tmp) > > > Hope this helps, > > Rui Barradas > > > Em 06-04-2013 11:33, Leask, Graham escreveu: >> Dear List members >> >> I have a large dataset organised in choice groups see sample below >> >> >> +-------------------------------------------------------------------------------------------------+ >> | dn obs choice acid br date cdate >> situat~n mth year set | >> >> |-------------------------------------------------------------------------------------------------| >> 1. | 4 1 0 LOSEC 1 . . >> . . 1 | >> 2. | 4 1 0 NEXIUM 2 . . >> . . 1 | >> 3. | 4 1 0 PARIET 3 . . >> . . 1 | >> 4. | 4 1 0 PROTIUM 4 . . >> . . 1 | >> 5. | 4 1 0 ZANTAC 5 . . >> . . 1 | >> >> |-------------------------------------------------------------------------------------------------| >> 6. | 4 1 1 ZOTON 6 23aug2000 01:00:00 23aug2000 >> NS 487 2000 1 | >> 7. | 4 2 0 LOSEC 1 . . >> . . 2 | >> 8. | 4 2 0 NEXIUM 2 . . >> . . 2 | >> 9. | 4 2 1 PARIET 3 25sep2000 01:00:00 25sep2000 >> L 488 2000 2 | >> 10. | 4 2 0 PROTIUM 4 . . >> . . 2 | >> >> |-------------------------------------------------------------------------------------------------| >> 11. | 4 2 0 ZANTAC 5 . . >> . . 2 | >> 12. | 4 2 0 ZOTON 6 . . >> . . 2 | >> 13. | 4 3 0 LOSEC 1 . . >> . . 3 | >> 14. | 4 3 0 NEXIUM 2 . . >> . . 3 | >> 15. | 4 3 0 PARIET 3 . . >> . . 3 | >> >> |-------------------------------------------------------------------------------------------------| >> 16. | 4 3 0 PROTIUM 4 . . >> . . 3 | >> 17. | 4 3 0 ZANTAC 5 . . >> . . 3 | >> 18. | 4 3 1 ZOTON 6 20sep2000 00:00:00 20sep2000 >> R 488 2000 3 | >> 19. | 4 4 0 LOSEC 1 . . >> . . 4 | >> 20. | 4 4 0 NEXIUM 2 . . >> . . 4 | >> >> |-------------------------------------------------------------------------------------------------| >> 21. | 4 4 1 PARIET 3 27oct2000 00:00:00 27oct2000 >> NL 489 2000 4 | >> 22. | 4 4 0 PROTIUM 4 . . >> . . 4 | >> 23. | 4 4 0 ZANTAC 5 . . >> . . 4 | >> 24. | 4 4 0 ZOTON 6 . . >> . . 4 | >> 25. | 4 5 0 LOSEC 1 . . >> . . 5 | >> >> |-------------------------------------------------------------------------------------------------| >> 26. | 4 5 0 NEXIUM 2 . . >> . . 5 | >> 27. | 4 5 0 PARIET 3 . . >> . . 5 | >> 28. | 4 5 0 PROTIUM 4 . . >> . . 5 | >> 29. | 4 5 0 ZANTAC 5 . . >> . . 5 | >> 30. | 4 5 1 ZOTON 6 23oct2000 03:00:00 23oct2000 >> NS 489 2000 5 | >> >> I wish to fill in the missing values in each choice set - delineated by dn >> (Doctor) obs (Observation number) and choices (1 to 6). >> For each choice set one choice is chosen which contains full time >> information for that choice set ie in set 1 choice 6 was chosen and >> shows the month 487. The other 5 choices show mth as missing. I want to fill >> these with the correct mth. >> >> I am sure there must be an elegant way to do this in R? >> >> >> Best wishes >> >> >> >> Graham >> >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. > ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.