मैं यह पता लगाने के लिए काम कर रहा हूं कि प्रत्येक वर्ष के प्रत्येक मूल्य को प्रत्येक वर्ष के पहले मूल्य से डेटा की बहु-वर्ष की समय श्रृंखला में कैसे विभाजित किया जाए।

एक सरल उदाहरण नीचे है:

library(dplyr)
library(lubridate) 

date    <- c('2015-01-01', '2015-01-02', '2015-01-03', '2015-01-04', '2015-01-05', '2015-01-06', '2016-01-01', '2016-01-02', '2016-01-03', '2016-01-04', '2016-01-05', '2016-01-06')
date <- tibble(ymd(date))
numbers <- tibble(1+ seq(0,11)/6) 


data <- bind_cols(date,numbers)
colnames(data)<- c('date', 'number')

firstDay <- data %>%
  group_by(year(date)) %>%
  arrange(date) %>%
  slice(1L) 

colnames(firstDay)[3] <- 'year'

data %>% group_by(year(date)) %>% 
  mutate ( calc = number/firstDay[2,firstDay$year==year(date)] )

मैं चाहता हूं कि 2015 के सभी डेटा को 1 जनवरी, 2015 से "संख्या" के मान से विभाजित किया जाए। इसी तरह मैं चाहता हूं कि 2016 के सभी डेटा को "1 जनवरी, 2016 के लिए संख्या" के मान से विभाजित किया जाए।

मैंने पिछले पाइप स्टेटमेंट के कई बदलावों की कोशिश की है, लेकिन वह काम नहीं कर रहा है।

आपके सहयोग के लिए धन्यवाद।

Jfd118

0
JFD 29 जिंदा 2020, 16:09

1 उत्तर

सबसे बढ़िया उत्तर

कैसे उत्परिवर्तित का उपयोग करने के बारे में:

ds %>% 
group_by(year = year(date)) %>% 
mutate(result = result/first(result))

आशा है कि इससे सहायता मिलेगी

1
Luis 30 जिंदा 2020, 19:36