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 <jholt...@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.a...@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@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@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@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.