[R] Conditions in R (Help Post)

David Winsemius dw|n@em|u@ @end|ng |rom comc@@t@net
Wed Oct 23 20:29:29 CEST 2019


On 10/22/19 10:19 PM, Yeasmin Alea wrote:
> Thank you. Can you please have a look the below data sets, script and
> question?
>
> *Dataset-1: Pen*
>
> *YEAR   DAY      X     Y   Sig phase  *
>
> *  <dbl> <dbl>  <dbl> <dbl> <dbl> <chr>  *
>
> *1  1981     9 -0.213 1.08   1.10 Phase-7*
>
> *2  1981    10  0.065 1.05   1.05 Phase-6*
>
>
>
> *Dataset-2: Book*
>
> *YEAR         Time *
>
> *1  1981     1981-12-03 06:00:00 *
>
> *2  1981    1981-12-04 00:00:00*
>
>
>
> I want the output table as
>
> *YEAR         Time                                   phase*
>
> *1  1981     1981-12-03 06:00:00     Phase-7*
>
> *2  1981    1981-12-04 00:00:00     Phase-4*


You are posting in HTML. R help is a plain text mailing list. It is easy 
to send plain text using gmail. You should start over by configuring 
your mail client for this purpose and send the output of dput(head(Pen)) 
and dput(head(Book)) rather than the versions above which do not lend 
themselves to simple input strategies.


-- 

David.

>
>
>
> *How can I combine and match the Dataset-1 DAY (365 days*35 years) +YEAR
> with Dataset-2 YEAR+Time? Dataset 1 has 5,551 rows and dataset 2 has 22,210*
>
> d$Pen<-Pen[cbind(match(Book$Time,Pen$DAY)]
> Kind regards
> Alea Yeasmin
>
>
> On Wed, Oct 23, 2019 at 2:20 AM jim holtman <jholtman using gmail.com> wrote:
>
>> Here is one way of doing it; I think the output you show is wrong:
>>
>> library(tidyverse)
>> input <- read_delim(" YEAR   DAY      X     Y   Sig
>>    1981     9 -0.213 1.08   1.10
>>    1981    10  0.065 1.05   1.05", delim = ' ', trim_ws = TRUE)
>>
>> input <- mutate(input,
>>    phase = case_when(X < 0 & Y < 0 & Y < X ~ 'phase=1',
>>                      X < 0 & Y > 0 & Y < X ~ 'phase=2',
>>                      X < 0 & Y > 0 & Y < X ~ 'phase=7',
>>                      X < 0 & Y > 0 & Y > X ~ 'phase=8',
>>                      X > 0 & Y < 0 & Y < X ~ 'phase=3',
>>                      X > 0 & Y < 0 & Y > X ~ 'phase=4',
>>                      X > 0 & Y > 0 & Y > X ~ 'phase=6',
>>                      X > 0 & Y > 0 & Y < X ~ 'phase=5',
>>                      TRUE ~ 'unknown'
>>    )
>> )
>>
>>> input
>> # A tibble: 2 x 6
>>     YEAR   DAY      X     Y   Sig phase
>>    <dbl> <dbl>  <dbl> <dbl> <dbl> <chr>
>> 1  1981     9 -0.213  1.08  1.1  phase=8
>> 2  1981    10  0.065  1.05  1.05 phase=6
>>
>> Jim Holtman
>> *Data Munger Guru*
>>
>>
>> *What is the problem that you are trying to solve?Tell me what you want to
>> do, not how you want to do it.*
>>
>>
>> On Tue, Oct 22, 2019 at 9:43 AM Yeasmin Alea <yeasmin.alea using gmail.com>
>> wrote:
>>
>>> Hello Team
>>> I would like to add a new column (for example-Phase) from the below data
>>> set based on the conditions
>>>     YEAR   DAY      X     Y   Sig
>>>   1  1981     9 -0.213 1.08   1.10
>>>   2  1981    10  0.065 1.05   1.05
>>> *Conditions*
>>>
>>> D$Phase=sapply(D,function(a,b) {
>>>       a <-D$X
>>>       b<-D$Y
>>>       if (a<0 && b<0 && b<a)
>>>      {phase=1} else if (a<0 && b<0 && b>a)
>>>      {phase=2} else if (a<0 && b>0 && b<a)
>>>      {phase=7} else if (a<0 && b>0 && b>a)
>>>      {phase=8} else if (a>0 && b<0 && b<a)
>>>      {phase=3} else if (a>0 && b<0 && b>a)
>>>      {phase=4} else if (a>0 && b>0 && b>a)
>>>      {phase=6} else (a>0 && b>0 && b<a)
>>>      {phase=5}
>>> })
>>>
>>> Can anyone help to fix the script to get a Phase column based on the
>>> conditions. The table will be like the below
>>>     YEAR   DAY      X     Y   Sig      Phase
>>>   1  1981     9 -0.213 1.08   1.10   phase=7
>>>   2  1981    10  0.065 1.05   1.05   phase=6
>>>
>>> Many thanks
>>> Alea
>>>
>>>          [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-help using 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 using 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