Skip to content

data manipulation question

2 messages · Kai Yang, Jim Lemon

#
Hello List,
I wrote the script below to assign value to a new field?DisclosureStatus.
my goal is if?gl_resultsdisclosed=1 then?DisclosureStatus=DISCLOSED
else if?gl_resultsdisclosed=0 then?DisclosureStatus=?ATTEMPTED
else if?gl_resultsdisclosed is missing and?gl_discloseattempt1 is not missing then?DisclosureStatus=?ATTEMPTED
else missing


germlinepatients$DisclosureStatus <-?
? ? ? ? ? ? ? ifelse(germlinepatients$gl_resultsdisclosed==1, "DISCLOSED",
? ? ? ? ? ? ? ? ifelse(germlinepatients$ gl_resultsdisclosed==0, "ATTEMPTED",?
? ? ? ? ? ? ? ? ? ?ifelse(is.na(germlinepatients$gl_resultsdisclosed) & germlinepatients$gl_discloseattempt1!='', "ATTEMPTED",
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?NA)))

the first 3 row give me right result, but the 3rd row does not. After checking the data, there are 23 cases are?gl_resultsdisclosed is missing and?gl_discloseattempt1 is not missing.? the code doesn't has any error message.
Please help?
thank you
#
Hi Kai,
How about setting:

germlinepatients$DisclosureStatus <- NA

then having your three conditional statements as indices:

germlinepatients$DisclosureStatus[germlinepatients$gl_resultsdisclosed
== 1] <-"DISCLOSED"
germlinepatients$DisclosureStatus[germlinepatients$
gl_resultsdisclosed == 0] <- "ATTEMPTED"
 germlinepatients$DisclosureStatus[is.na(germlinepatients$gl_resultsdisclosed) &
 germlinepatients$gl_discloseattempt1 != "ATTEMPTED"] <-"ATTEMPTED"

I know it's not elegant and you could join the last two statements
with OR (|) but it may work.

Jim

On Tue, Aug 24, 2021 at 9:22 AM Kai Yang via R-help
<r-help at r-project.org> wrote: