Advertisement
AdamAK

Untitled

Nov 9th, 2022
1,749
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 3.65 KB | None | 0 0
  1. # Markthuur tabel. Handig om deze één keer in te lezen, en daarna op te splitsen in de relevante lookup tables
  2. markthuur_tabel <- read_xlsx('modelparams_v2.xlsx', sheet = 'Markthuur')
  3. fWOZ_tabel <- subset(markthuur_tabel, markthuur_tabel$parameter == 'fWOZ')
  4. fBouwjaar_tabel <- subset(markthuur_tabel, markthuur_tabel$parameter == 'fBouwjaar')
  5. fType_tabel <- subset(markthuur_tabel, markthuur_tabel$parameter == 'fType')
  6. fRegio_tabel <- subset(markthuur_tabel, markthuur_tabel$parameter == 'fRegio')
  7. fMarkt_tabel <- subset(markthuur_tabel, markthuur_tabel$parameter == 'fMarkt')
  8.  
  9. ## Markthuur functie uit het handboek
  10. # Deze funcite kan netter worden gemaakt, maar het oppoetsen komt straks wel. Had het liever niet via loops gedaan, maar zie zo gauw niet hoe we het hier kunnen vermijden.
  11. bereken_markthuur <- function(m2, huur_ref, WOZ, bouwjaar, type, regio){
  12.     # Nakijken in welk WOZ-bakje de woning valt
  13.     num_rows = nrow(fWOZ_tabel) - 1
  14.     for(index in 1:num_rows){
  15.         # Als er een match is, nemen we de parameter waarde over en stoppen we de loop. Anders gaan we ervan uit dat het in de laatste rij van de referentietabel valt.
  16.         if(WOZ <= as.numeric(fWOZ_tabel[index, 'variabele_waarde'])){
  17.             fWOZ <- as.numeric(fWOZ_tabel[index, 'parameter_waarde'])
  18.             break
  19.         }
  20.         fWOZ <- as.numeric(fWOZ_tabel[num_rows + 1, 'parameter_waarde'])
  21.     }
  22.     # Nakijken in welk bouwjaar-bakje de woning valt
  23.     num_rows <- nrow(fBouwjaar_tabel) - 1
  24.     for(index in 1:num_rows){
  25.         # Als er een match is, nemen we de waarde over en stoppen we de loop. Anders gaan we ervan uit dat het in de laatste rij valt.
  26.         if(bouwjaar <= as.numeric(fBouwjaar_tabel[index, 'variabele_waarde'])){
  27.             fBouwjaar <- as.numeric(fBouwjaar_tabel[index, 'parameter_waarde'])
  28.             break
  29.         }
  30.         fBouwjaar <- as.numeric(fBouwjaar_tabel[num_rows + 1, 'parameter_waarde'])
  31.     }
  32.    
  33.     # Nakiken wat voor type woning het is
  34.     fType <- as.numeric(fType_tabel[fType_tabel['variabele_waarde'] == type, 'parameter_waarde'])
  35.  
  36.     # Nakijken in welke regio de woning staat.
  37.     fRegio <- as.numeric(fRegio_tabel[fRegio_tabel['variabele_waarde'] == regio, 'parameter_waarde'])
  38.     fMarkt <- as.numeric(fMarkt_tabel[fMarkt_tabel['variabele_waarde'] == regio, 'parameter_waarde'])
  39.    
  40.     # Markthuur berekenen conform de formule
  41.     markthuur <- (m2/((0.0125 * m2) ** 0.6796)) * huur_ref * fWOZ * fBouwjaar * fType * fRegio * fMarkt
  42.     return(markthuur)
  43. }
  44.  
  45. [[ BINNEN DE FOR LOOP ]]
  46.  
  47.     ## Deze loop berekent het aantal WWS-punten en de bijbehorende huur en neemt voor elk jaar en neemt mee wat het huidige energielabel is.
  48.     # Hierin kan ook gelijk de markthuur elk jaar worden berekend.
  49.     for (i in 1:(n_years+1)) {
  50.     # for(i in 1:1){
  51.         woz <- df_list[[h]]$woz.woning[i]
  52.         huidig_label <- df_list[[h]]$energie_label[i]
  53.         punten <- wws.helper(m2, huidig_label, finish.level, woz, points.a1, points.a4, points.a56, points.a9,lookup.table)$WOZ_punten
  54.         huur <- wws.helper(m2, huidig_label, finish.level, woz,points.a1, points.a4, points.a56, points.a9,lookup.table)$WOZ_huur
  55.         df_list[[h]]$punten.wws[i] <- punten ## wws punten volgens puntensysteem
  56.         df_list[[h]]$huur.wws[i] <- 12*huur*df_list[[h]]$cumcpi[i] ## berekening in maandhuur, omzetten naar jaarhuur, opgehoogd met cpi.
  57.        
  58.         ## HIER AANPaSSEN: We hebben nog geen referentiehuur. Ik gooi er even de WWS-huur in, om een getal te hebben. Dit klopt natuurlijk niet!
  59.         df_list[[h]]$markthuur[i] <- bereken_markthuur(m2, (df_list[[h]]$huur.wws[i]/m2), woz, bouwjaar, substring(huidig_label, 1, 3), regio)
  60.     }
  61.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement