[R] If else

Duncan Murdoch murdoch.duncan at gmail.com
Sat Oct 31 23:02:47 CET 2015


On 31/10/2015 3:47 PM, (Ted Harding) wrote:
> [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 ... ).

I'm not convinced by your example.  I'm quite happy to say that the sex
is M or F or unobserved, but unobserved is not a third sex, under that
model it just means "M or F but I don't know which".  It is an
incomplete observation, it's not a third sex.

I can imagine 3 sexes in a case of multiple individuals:  "all M", "all
F", "mixed".

I can also imagine more complicated definitions of "sex" that include
more than 2 categories, but I think that's not what we're talking about
here.

> 
> 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).

That claim is nonsense.  R never ignores *anything* unless the analyst
tells it to.  The analyst may choose to ignore something, but don't
blame R if the analyst makes a bad decision.

Duncan Murdoch


> 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
> 
> ______________________________________________
> 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.
>



More information about the R-help mailing list