Leask, Graham
2013-Apr-06 10:33 UTC
[R] Replace missing value within group with non-missing value
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]]
Rui Barradas
2013-Apr-06 11:15 UTC
[R] Replace missing value within group with non-missing value
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 at 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. >
Leask, Graham
2013-Apr-06 17:12 UTC
[R] Replace missing value within group with non-missing value
Hi Arun, How odd. Directly pasting the code from your email precisely repeats the error. See below. Any thoughts on the cause of this anomaly?> dput(head(dat,50))structure(list(dn = c(4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4), obs = c(1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9), choice = c(0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0), br = c(1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2), mth = c(NA, NA, NA, NA, NA, 487, NA, NA, 488, NA, NA, NA, NA, NA, NA, NA, NA, 488, NA, NA, 489, NA, NA, NA, NA, NA, NA, NA, NA, 489, NA, NA, NA, NA, NA, 489, NA, NA, NA, NA, NA, 490, NA, NA, NA, NA, NA, 491, NA, NA)), .Names = c("dn", "obs", "choice", "br", "mth"), row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50"), class = "data.frame")> 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 + }) Error in `$<-.data.frame`(`*tmp*`, "mth", value = NA_real_) : replacement has 1 rows, data has 0> head(do.call(rbind, tmp),7)Error in do.call(rbind, tmp) : object 'tmp' not found Best wishes Graham -----Original Message----- From: arun [mailto:smartpink111 at yahoo.com] Sent: 06 April 2013 17:25 To: Leask, Graham Cc: Rui Barradas Subject: Re: [R] Replace missing value within group with non-missing value Hello, By running Rui's code, I am getting this: 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 ???? }) ?head(do.call(rbind, tmp),7) ?? dn obs choice br mth 1?? 4?? 1????? 0? 1 487 2?? 4?? 1????? 0? 2 487 3?? 4?? 1????? 0? 3 487 4?? 4?? 1????? 0? 4 487 5?? 4?? 1????? 0? 5 487 6?? 4?? 1????? 1? 6 487 7?? 4?? 2????? 0? 1 488 Couldn't reproduce the error you cited. A.K. ----- Original Message ----- From: "Leask, Graham" <g.leask at aston.ac.uk> To: Rui Barradas <ruipbarradas at sapo.pt> Cc: "r-help at r-project.org" <r-help at r-project.org> Sent: Saturday, April 6, 2013 12:16 PM Subject: Re: [R] Replace missing value within group with non-missing value Hi Rui, Data as follows structure(list(dn = c(4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4), obs = c(1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9), choice = c(0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0), br = c(1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2), mth = c(NA, NA, NA, NA, NA, 487, NA, NA, 488, NA, NA, NA, NA, NA, NA, NA, NA, 488, NA, NA, 489, NA, NA, NA, NA, NA, NA, NA, NA, 489, NA, NA, NA, NA, NA, 489, NA, NA, NA, NA, NA, 490, NA, NA, NA, NA, NA, 491, NA, NA)), .Names = c("dn", "obs", "choice", "br", "mth"), row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50"), class = "data.frame") Best wishes Graham -----Original Message----- From: Rui Barradas [mailto:ruipbarradas at sapo.pt] Sent: 06 April 2013 16:32 To: Leask, Graham Cc: r-help at r-project.org Subject: Re: [R] Replace missing value within group with non-missing value Hello, Can't you post a data example? If your dataset is named 'dat' use dput(head(dat, 50))? # paste the output of this in a post Rui Barradas Em 06-04-2013 15:34, Leask, Graham escreveu:> 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" <ruipbarradas at 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 at 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 at 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.