R: opprette en ny kolonne basert på flere forhold av to kolonner med datoer

stemmer
1

Jeg har en dataramme som ser slik ut (kort eksempel):

df

date1        date2        Value
01-01-2016   01-01-2016   100
01-02-2016   01-01-2016   90
01-03-2016   01-01-2016   110
01-02-2016   01-02-2016   180
01-03-2016   01-02-2016   80
01-04-2016   01-02-2016   100
01-05-2016   01-02-2016   70
01-03-2016   01-03-2016   90
01-04-2016   01-03-2016   100
01-05-2016   01-03-2016   80

Jeg ønsker å lage en ny kolonne basert på følgende kriterier: hvis dato1 = dato2 jeg trenger for å sette i den nye kolonnen Value_new verdien fra kolonne Value fra raden, der dato1 = dato2 - en måned. I tilfelle at det er nå verdi for dato1 = dato2 - en måned, bør nye verdien være lik 0.

Utgang skal være som dette:

date1        date2        Value  Value_new
01-01-2016   01-01-2016   100    0
01-02-2016   01-01-2016   90     0
01-03-2016   01-01-2016   110    0
01-02-2016   01-02-2016   180    90
01-03-2016   01-02-2016   80     0
01-04-2016   01-02-2016   100    0
01-05-2016   01-02-2016   70     0
01-03-2016   01-03-2016   90     80
01-04-2016   01-03-2016   100    0
01-05-2016   01-03-2016   80     0

Jeg har prøvd å løse dette ved å bruke neste kode, men det fungerer ikke på riktig måte:

df$Value_new <- 0
df$Value_new[df$date1==df$date2] <- df$Value[(df$date1 == (df$date2 - months(1))]

Jeg er ny i R programmering og ville være takknemlig for alle forslag.

Blockquote

Publisert på 19/03/2020 klokken 21:54
kilden bruker
På andre språk...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more