Ich habe zwei TabellenR-Gruppe Werte in Spalte basierend auf Intervallen und der Mittelwert der Ergebnisse für jedes Intervall
Tabelle 1:
Dates_only <- data.frame(ID=c('1118','1118','1118','1118','1118',
'1118','1118','1118','1119','1119',
'1119','1119','1119','1119','1119',
'1119','13PP','13PP','13PP','13PP',
'13PP','13PP','13PP','13PP'),
Quart_y=c('2017Q3','2017Q4','2018Q1','2018Q2',
'2018Q3','2018Q4','2019Q1','2019Q2',
'2017Q3','2017Q4','2018Q1','2018Q2',
'2018Q3','2018Q4','2019Q1','2019Q2',
'2017Q3','2017Q4','2018Q1','2018Q2',
'2018Q3','2018Q4','2019Q1','2019Q2'),
Quart=c(0.25,0.50,0.75,1.00,1.25,1.50,1.75,2.00,
0.25,0.50,0.75,1.00,1.25,1.50,1.75,2.00,
0.25,0.50,0.75,1.00,1.25,1.50,1.75,2.00))
und Tabelle 2:
Values <- data.frame(ID=c('1118','1119','13PP','1118','1119','13PP',
'1118','1119','13PP','1118','1119','13PP',
'1118','1119','13PP','1118','1119','13PP',
'1118','1119','13PP','1118','1119','13PP',
'1118','1119','13PP','1118','1119','13PP'),
Day=c(0,0,0,0.14,0.13,0.13,0.2,0.23,0.24,0.27,0.28,
0.32,0.32,0.32,0.44,0.47,0.49,0.49,0.59,0.64,
0.61,0.72,0.71,0.73,0.95,0.86,0.78,1.1,0.93,1.15),
Value=c(7.6,6.2,6.8,7.1,6.2,5.9,6.8,5.8,4.6,6.5,5.4,
4.2,6.3,4.8,4,6,4.3,3.8,5.9,4,3.6,5.6,3.8,
3.4,5.4,3.2,3,5,2.9,2.9))
Was ich bin versuchen zu tun ist, einen Weg zu finden, um die Werte in Values$Day
nach Dates_only$Quart
zu ändern. Spezifisch, Dates_only$Quart
stellen quantifizierte Viertel (2017Q3 - 0.25, 2017Q4-0.50,...,2018Q4-1.50)
etc. dar. Während Values$Day
quantifizierte Tage darstellt. Ich möchte die Values$Day
von Quartal klassifiziert ändern statt, zum Beispiel: für 0<=Values$Day<=0.25
die Values$Day==0.25
, für 0.25<Values$Day<=0.50
die Values$Day==0.50
usw.
Was ich habe versucht zu tun, um dieses Verfahren unten verwenden, aber es kommt mit einem Fehler auf Nachricht:
unique_quarters <- unique(Dates_only$Quart)
unique_quarters <- append(unique_quarters, 0, after=0)
df3 <- transform(Dates_only,
Transf_Day=Values$Quart[findInterval(Values$Day, unique_quarters)])
das Problem, das ich das Problem Vermutung ist, dass findInterval(Values$Day, unique_quarters)
kehrt
1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 4 4 4 5 4 5
Während Values$Quart
Werte hat
0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00
versuchen 'schneiden (Werte $ Tag, seq (0,3,0.25), include.lowest = T)' – Jimbou
Danke, aber das hilft nicht wirklich. Wie ich Zahlen und nicht Intervalle extrahieren möchte. Danke für die Mühe! – Jespar