[R] If else

John Kane jrkrideau at inbox.com
Sat Oct 31 11:59:40 CET 2015


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!



More information about the R-help mailing list