On Nov 7, 2011, at 9:39 AM, Paul Miller wrote:

Hello All,

I've been reading books about R for awhile now and am in the process of replicating the SAS analyses from an old report. I want to be sure that I can do all the things I need to in R before using it in my daily work.

So far, I've managed to read in all my data and have done some data manipulation. I'm having trouble with fixing an error in a date variable though, and was hoping someone could help.

One of the patients in my data has a DOB incorrectly entered as:

'11/23/21931'

Their DOB should be:

'11/23/1931'

How can I correct this problem before calculating age in the code below? DOB starts out as a factor in the Demo dataframe but then is converted into a date. So I had thought the ifelse that follows could be used to correct the problem, but this doesn't seem to be the case.

Thanks,

Paul


Why not fix the single error first?

Demo[ Demo$Subject==108945, "DateCompleted"] <- '11/23/1931'

Then you can skip the time-consuming ifelse() inside the within() call.

--
David

Demo_Char <- within(Demo, {
DateCompleted <- as.Date(DateCompleted, format = "%m/%d/%Y")
DOB <- as.Date(DOB, format = "%m/%d/%Y")
DOB <- ifelse(Subject==108945, as.Date("1931-11-23"), DOB)
Age <- as.integer((DateCompleted - DOB) / 365.25)
})

______________________________________________
[email protected] 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.

David Winsemius, MD
West Hartford, CT

______________________________________________
[email protected] 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.

Reply via email to