Nikos Alexandris

Remote Sensing Scientist, Dr

email
@twitter | freenode NikosA | github
gpg Fingerprint 0x9053534B693C4FB3

/arrears-towards-the-greek-state

Σύνολο Ληξιπρόθεσμων Οφειλών προς το Ελληνικό Δημόσιο — Μικρή άσκηση στο R

Άσκηση στο R: να αντληθεί ο πίνακας με τις Ληξιπρόθεσμες οφειλές φυσικών προσώπων προς το Ελληνικό Δημόσιο και να υπολογιστούν σύνολα και μέσοι όροι.

Στην ιστοσελίδα http://www.gsis.gr/gsis/info/gsis_site/PublicIssue/profit_fp/ υπάρχει ένας πίνακας με τις Ληξιπρόθεσμες οφειλές φυσικών προσώπων. Χρησιμοποιώντας το R, να αντληθεί ο πίνακας και να υπολογιστούν σύνολα και μέσοι όροι (προφανώς για τις στήλες που περιέχουν αριθμούς).

Μια λύση

# url
url <- "http://www.gsis.gr/gsis/info/gsis_site/PublicIssue/profit_fp/"

# scrap html table | source: <http://stackoverflow.com/a/1849388/1172302>
library(XML)
table <- readHTMLTable(url, header = TRUE , stringsAsFactors = FALSE , skip=1)
debtors <- table[[1]]

# or, directly
# debtors <- readHTMLTable(url, header = TRUE , stringsAsFactors = FALSE , skip=1)[[1]]

# convert cols 3:6 to numbers, comma to dec. separator, remove thousands separator
  # source: <http://stackoverflow.com/a/2347548/1172302>
debtors[,3:6] <- do.call ( "cbind.data.frame",
              lapply ( debtors[,3:6], function(x) as.numeric (
                        gsub(',', '.', gsub("\\.", '', x) )
                                      )
                  )
              )
# empty the actual empty column "Παρατηρήσεις" -- or remove?
debtors$Παρατηρήσεις <- gsub("\\.", '', debtors$Παρατηρήσεις)

summary(debtors[,3:6])

 Βασική οφειλή Δ.Ο.Υ. Βασική οφειλή Τελωνείων Συνεισπραττόμενα
 Min.   :        0    Min.   :        0       Min.   :        0
 1st Qu.:   205226    1st Qu.:        0       1st Qu.:   140312
 Median :   353262    Median :        0       Median :   334457
 Mean   :  1950000    Mean   :   138575       Mean   :  1692326
 3rd Qu.:  1029652    3rd Qu.:        0       3rd Qu.:   948925
 Max.   :561587314    Max.   :122729561       Max.   :508454226
     Σύνολο
 Min.   :1.527e+05
 1st Qu.:3.781e+05
 Median :7.142e+05
 Mean   :3.781e+06
 3rd Qu.:2.108e+06
 Max.   :1.070e+09

Αθροίσματα και μέσοι όροι

# sums
colSums(debtors[,3:6])

   Βασική οφειλή Δ.Ο.Υ. Βασική οφειλή Τελωνείων        Συνεισπραττόμενα
             9929399419               705626367              8617325020
                 Σύνολο
            19252350806 

# means
colMeans(debtors[,3:6])

   Βασική οφειλή Δ.Ο.Υ. Βασική οφειλή Τελωνείων        Συνεισπραττόμενα
              1949999.9                138575.5               1692326.2
                 Σύνολο
              3780901.6