[R] Vectorizing sample()
I am simulating sickness among a group of families. Part of the task is to randomly draw who in the family will be sick, randomly drawing from family ID's where Dad =1, Mom = 2, Kid1 = 3, Kid2 = 4., etc. My census of Dads is of the form shown below. Dad_ID Spouse (Y=1;N=0)#Kids #People_Becoming_Sick 1 1 0 1 2 0 2 2 3 1 0 2 4 1 3 3 ... The end output needed is if 3 people in a family are to be sick, was it the dad and two kids, with random family ID's = {1,3,4}, or the mom, dad, and one kid, with random family ID's = {2,1,4}, etc.. The complication is that length of the family ID's to choose from and the associated sampling probabilities -- changes with each family. I could loop through the Dads, from i in 1:nrow(census), but is there a way I could vectorize sample() to get at the same objective? My attempts to use the apply-based functions have dead ended. Other ideas to vectorize this problem are warmly welcomed. Regards, Stephen Collins, MPP | Analyst Health Benefits | Aon Consulting 200 East Randolph, Suite 900, Chicago, IL Tel: 312-381-2578 | Fax: 312-381-0136 Email: [EMAIL PROTECTED] Aon Consulting selected by the readers of Business Insurance as the âBest Employee Benefit Consulting Firmâ in 2006, 2007, and 2008 NOTE: The information contained in this transmission, including any attachment(s) is only for the use of the intended individual(s) or entity, and may contain information that is privileged and confidential. If the reader of this message is not an intended recipient, you are hereby notified that any dissemination, distribution, disclosure, or copying of this information is unauthorized and strictly prohibited. If you have received this communication in error, please contact the sender immediately by reply email and destroy all copies of the original message. [[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.
Re: [R] Vectorizing sample()
On 11/7/2008 12:00 PM, Stephen Collins wrote: I am simulating sickness among a group of families. Part of the task is to randomly draw who in the family will be sick, randomly drawing from family ID's where Dad =1, Mom = 2, Kid1 = 3, Kid2 = 4., etc. My census of Dads is of the form shown below. Dad_ID Spouse (Y=1;N=0)#Kids #People_Becoming_Sick 1 1 0 1 2 0 2 2 3 1 0 2 4 1 3 3 ... The end output needed is if 3 people in a family are to be sick, was it the dad and two kids, with random family ID's = {1,3,4}, or the mom, dad, and one kid, with random family ID's = {2,1,4}, etc.. The complication is that length of the family ID's to choose from and the associated sampling probabilities -- changes with each family. I could loop through the Dads, from i in 1:nrow(census), but is there a way I could vectorize sample() to get at the same objective? My attempts to use the apply-based functions have dead ended. Other ideas to vectorize this problem are warmly welcomed. You might want to transform runif instead of using sample(). For example, if you want to generate M integers from 1:n_i, where n_i varies from sample to sample, you could use gen - ceiling(runif(M, 0, n)) (where n is a vector of length M giving the upper limits). Duncan Murdoch Regards, Stephen Collins, MPP | Analyst Health Benefits | Aon Consulting 200 East Randolph, Suite 900, Chicago, IL Tel: 312-381-2578 | Fax: 312-381-0136 Email: [EMAIL PROTECTED] Aon Consulting selected by the readers of Business Insurance as the “Best Employee Benefit Consulting Firm� in 2006, 2007, and 2008 NOTE: The information contained in this transmission, including any attachment(s) is only for the use of the intended individual(s) or entity, and may contain information that is privileged and confidential. If the reader of this message is not an intended recipient, you are hereby notified that any dissemination, distribution, disclosure, or copying of this information is unauthorized and strictly prohibited. If you have received this communication in error, please contact the sender immediately by reply email and destroy all copies of the original message. [[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.
Re: [R] Vectorizing sample()
Hi, I'm not quite sure I understood everything but is this something close? d - read.table(textConnection(Dad_ID SpouseYN NKids NSick 1 10 1 2 02 2 3 10 2 4 13 3), header=TRUE) mapply(sample, d$NKids+d$SpouseYN+1, d$NSick) # d$NKids+d$SpouseYN+1 is supposed to be family size Best regards, Kenn On Fri, Nov 7, 2008 at 7:00 PM, Stephen Collins [EMAIL PROTECTED]wrote: I am simulating sickness among a group of families. Part of the task is to randomly draw who in the family will be sick, randomly drawing from family ID's where Dad =1, Mom = 2, Kid1 = 3, Kid2 = 4., etc. My census of Dads is of the form shown below. Dad_ID Spouse (Y=1;N=0)#Kids #People_Becoming_Sick 1 1 0 1 2 0 2 2 3 1 0 2 4 1 3 3 ... The end output needed is if 3 people in a family are to be sick, was it the dad and two kids, with random family ID's = {1,3,4}, or the mom, dad, and one kid, with random family ID's = {2,1,4}, etc.. The complication is that length of the family ID's to choose from and the associated sampling probabilities -- changes with each family. I could loop through the Dads, from i in 1:nrow(census), but is there a way I could vectorize sample() to get at the same objective? My attempts to use the apply-based functions have dead ended. Other ideas to vectorize this problem are warmly welcomed. Regards, Stephen Collins, MPP | Analyst Health Benefits | Aon Consulting 200 East Randolph, Suite 900, Chicago, IL Tel: 312-381-2578 | Fax: 312-381-0136 Email: [EMAIL PROTECTED] Aon Consulting selected by the readers of Business Insurance as the âBest Employee Benefit Consulting Firmâ in 2006, 2007, and 2008 NOTE: The information contained in this transmission, including any attachment(s) is only for the use of the intended individual(s) or entity, and may contain information that is privileged and confidential. If the reader of this message is not an intended recipient, you are hereby notified that any dissemination, distribution, disclosure, or copying of this information is unauthorized and strictly prohibited. If you have received this communication in error, please contact the sender immediately by reply email and destroy all copies of the original message. [[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. [[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.