[R] If else

(Ted Harding) Ted.Harding at wlandres.net
Sat Oct 31 20:47:07 CET 2015


[Apologies if the message below should arrive twice. When first
sent there was apparently something wrong with the email address
to r-help, and it was held for moderation because "Message has
implicit destination" (whatever that means). I have made sure
that this time the email address is correct.]

John Fox has given a neat expression to achieve the desired result!

I would like to comment, however, on the somewhat insistent criticism
of Val's request from several people.

It can make sense to have three "sex"es. Suppose, for example,
that the data are records of street crime reported by victims.
The victim may be able to identify the sex of the preprator
as definitely "M", or definitely "F". One of the aims of the
analysis is to investgate whether there is an association
between the gender of the offender and the type of crime.

But in some cases the victim may not have been able to recognise
the offender's sex. Then it would have to go in the record as "NA"
(or equivalent). There can be two kinds of reason why the victim
was unable to recognise the sex. One kind is where the victim
simply did not see the offender (e.g. their purse was stolen
while they were concentrating on something else, and they only
found out later). Another kind is where the offender deliberately
disguises their gender, so that it cannot be determined from their
appearance. This second kind could be associated with a particular
category of crime (and I leave it to people's lurid imaginations
to think of possible examples ... ).

Then one indeed has three "sex"es: Male, Female, and Indeterminate,
for each of which there is a potential assoctiation with type of crime.
With most analyses, however, a category of "NA" would be ignored
(at least by R).

And then one has a variable which is a factor with 3 levels, all
of which can (as above) be meaningful), and "NA" would not be
ignored.

Hoping this helps to clarify! (And, Val, does the above somehow
correspond to your objectives).

Best wishes to all,
Ted.

On 31-Oct-2015 17:41:02 Jeff Newmiller wrote:
> Rolf gave you two ways. There are others. They all misrepresent the data
> (there are only two sexes but you are effectively acting as if there are
> three); hence the inquisition in hopes of diverting you to a more correct
> method of analysis. However, this is not the support forum for whatever other
> software you plan to proceed with so never mind.
> ---------------------------------------------------------------------------
> Jeff Newmiller                        The     .....       .....  Go Live...
> DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
>                                       Live:   OO#.. Dead: OO#..  Playing
> Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
> /Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
> --------------------------------------------------------------------------- 
> Sent from my phone. Please excuse my brevity.
> 
> On October 31, 2015 10:15:33 AM PDT, Val <valkremk at gmail.com> wrote:
>>Hi Jeff,
>>
>>I thought I answered. Yes I was not clear about it.  The further
>>analysis
>>will no  be done by R.  It is another software that will not accept a
>>character response variable.
>>
>>Why R is so complicated to do that.  If it is SAS then I can do it on
>>one
>>statement. .
>>
>>
>>On Sat, Oct 31, 2015 at 11:39 AM, Jeff Newmiller
>><jdnewmil at dcn.davis.ca.us>
>>wrote:
>>
>>> You haven't actually answered John's question as to the type of
>>analysis
>>> you plan to do. It still looks from here like you should be using
>>factor
>>> data rather than numeric, but since you are not being clear we cannot
>>give
>>> specifics as to how to proceed.
>>>
>>---------------------------------------------------------------------------
>>> Jeff Newmiller                        The     .....       .....  Go
>>Live...
>>> DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live
>>> Go...
>>>                                       Live:   OO#.. Dead: OO#.. 
>>Playing
>>> Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
>>> /Software/Embedded Controllers)               .OO#.       .OO#. 
>>rocks...1k
>>>
>>---------------------------------------------------------------------------
>>> Sent from my phone. Please excuse my brevity.
>>>
>>> On October 31, 2015 8:23:05 AM PDT, Val <valkremk at gmail.com> wrote:
>>> >Hi All,
>>> >
>>> >
>>> >Yes I need  to change to numeric  because I am preparing a data set
>>> >for
>>> >further  analysis. The variable to be changed  from character to
>>> >numeric
>>> >(in this case, sex) will be a response variable.  Some records have
>>> >missing
>>> >observation on sex and it is blank.
>>> >     id  sex
>>> >      1
>>> >      2
>>> >      3  M
>>> >      4  F
>>> >      5  M
>>> >      6  F
>>> >      7  F
>>> >
>>> >I am reading the data like this
>>> >
>>> >mydata <- read.csv(header=TRUE, text=', sep=", ")
>>> >     id  sex
>>> >      1   NA
>>> >      2  NA
>>> >      3  M
>>> >      4  F
>>> >      5  M
>>> >      6  F
>>> >      7  F
>>> >
>>> >The  data set is huge   (>250,000)
>>> >
>>> >
>>> >I want the output like this
>>> >
>>> >     id  sex    sex1
>>> >      1   NA    0
>>> >      2  NA     0
>>> >      3  M       1
>>> >      4  F       2
>>> >      5  M      1
>>> >      6  F       2
>>> >      7  F       2
>>> >
>>> >Thank you in advance
>>> >
>>> >
>>> >On Sat, Oct 31, 2015 at 5:59 AM, John Kane <jrkrideau at inbox.com>
>>wrote:
>>> >
>>> >> In line.
>>> >>
>>> >> John Kane
>>> >> Kingston ON Canada
>>> >>
>>> >>
>>> >> > -----Original Message-----
>>> >> > From: valkremk at gmail.com
>>> >> > Sent: Fri, 30 Oct 2015 20:40:03 -0500
>>> >> > To: istazahn at gmail.com
>>> >> > Subject: Re: [R] If else
>>> >> >
>>> >> > I am trying to change the mydata$sex  from character to numeric
>>> >>
>>> >> Why?
>>> >>  As Ista (mydata$confusingWillCauseProblemsLater) has pointed out
>>> >this is
>>> >> a very unusual thing to do in R.
>>> >>
>>> >> Is there a very specific reason for doing this in your analysis.
>>> >> Otherwise it may better to leave the coding as NA. Some of the
>>data
>>> >mungers
>>> >> here may be able to suggest which is the best strategy in R.
>>> >>
>>> >> R is 'weird' compared to more mundane stats packages such as SAS
>>or
>>> >SPSS
>>> >> and common techniques that one would use with them often are not
>>> >> appropriate in R.
>>> >>
>>> >>
>>> >>
>>> >>
>>> >> > I want teh out put like
>>> >> >    id  sex
>>> >> >       1  NA   0
>>> >> >       2  NA   0
>>> >> >       3  M     1
>>> >> >       4  F     2
>>> >> >       5  M    1
>>> >> >       6  F     2
>>> >> >       7  F    2
>>> >> >
>>> >> > mydata$sex1 <- 0
>>> >> > if(mydata$sex =="M " ){
>>> >> >   mydata$sex1<-1
>>> >> > } else {
>>> >> >   mydata$sex1<-2
>>> >> > }
>>> >> >
>>> >> > mydata$sex1
>>> >> >
>>> >> > Warning message:In if (mydata$sex == "M ") { :
>>> >> >   the condition has length > 1 and only the first element will
>>be
>>> >> > used> mydata$sex1[1] 2 2 2 2 2 2 2 2
>>> >> >
>>> >> >>
>>> >> >
>>> >> >
>>> >> > On Fri, Oct 30, 2015 at 8:28 PM, Ista Zahn <istazahn at gmail.com>
>>> >wrote:
>>> >> >
>>> >> >> Using numeric for missing sounds like asking for trouble. But
>>if
>>> >you
>>> >> >> must, something like
>>> >> >>
>>> >> >> mydata$confusingWillCauseProblemsLater <-
>>> >> >>   ifelse(
>>> >> >>     is.na(mydata$sex),
>>> >> >>     0,
>>> >> >>     as.numeric(factor(mydata$sex,
>>> >> >>                       levels = c("M", "F"))))
>>> >> >>
>>> >> >> should do it.
>>> >> >>
>>> >> >> Best,
>>> >> >> Ista
>>> >> >>
>>> >> >> On Fri, Oct 30, 2015 at 9:15 PM, Val <valkremk at gmail.com>
>>wrote:
>>> >> >>> Hi all,
>>> >> >>> Iam trying to change character  to numeric but have probelm
>>> >> >>>
>>> >> >>> mydata <- read.table(header=TRUE, text=', sep=" "
>>> >> >>>      id  sex
>>> >> >>>       1  NA
>>> >> >>>       2  NA
>>> >> >>>       3  M
>>> >> >>>       4  F
>>> >> >>>       5  M
>>> >> >>>       6  F
>>> >> >>>       7  F
>>> >> >>>        ')
>>> >> >>>
>>> >> >>> if sex is missing then sex=0;
>>> >> >>> if sex is"M" then sex=1;
>>> >> >>> if sex is"F" then sex=2;
>>> >> >>>
>>> >> >>> Any help please ?
>>> >> >>>
>>> >> >>>         [[alternative HTML version deleted]]
>>> >> >>>
>>> >> >>> ______________________________________________
>>> >> >>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more,
>>see
>>> >> >>> 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 at r-project.org mailing list -- To UNSUBSCRIBE and more,
>>see
>>> >> > 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.
>>> >>
>>> >> ____________________________________________________________
>>> >> FREE 3D MARINE AQUARIUM SCREENSAVER - Watch dolphins, sharks &
>>orcas
>>> >on
>>> >> your desktop!
>>> >> Check it out at http://www.inbox.com/marineaquarium
>>> >>
>>> >>
>>> >>
>>> >
>>> >       [[alternative HTML version deleted]]
>>> >
>>> >______________________________________________
>>> >R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> >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 -- To UNSUBSCRIBE and more, see
> 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.

-------------------------------------------------
E-Mail: (Ted Harding) <Ted.Harding at wlandres.net>
Date: 31-Oct-2015  Time: 19:29:50
This message was sent by XFMail



More information about the R-help mailing list