Skip to content

Instantly share code, notes, and snippets.

View symbolrush's full-sized avatar

Adrian Stämpfli-Schmid symbolrush

View GitHub Profile
@symbolrush
symbolrush / dateshift.R
Last active January 25, 2019 09:15
Happy to solve your unsolvable problem, Mr. Smith. :-)
imsbasics::clc()
jahr16 <- seq(as.Date("2016/1/1"), as.Date("2016/12/31"), "days")
jahr17 <- seq(as.Date("2017/1/1"), as.Date("2017/12/31"), "days")
jahr18 <- seq(as.Date("2018/1/1"), as.Date("2018/12/31"), "days")
jahr19 <- seq(as.Date("2019/1/1"), as.Date("2019/12/31"), "days")
library(testthat)
library(lubridate)
expect_equal(wday(jahr16[5]), wday(jahr19[1]))
expect_equal(wday(jahr17[3]), wday(jahr19[1]))
osrmr::run_server("switzerland-latest", "C:/OSRM_API5")
osrmr::viaroute(47.1, 8.1, 46.9, 8.3, FALSE, 5, TRUE)
options(osrm.server = paste0(osrmr:::server_address(TRUE), "/"))
getOption("osrm.server")
osrm::osrmRoute(src = c("A", 8.1, 47.1), dst = c("B", 8.3, 46.9), sp = TRUE, overview = "full")$duration*60
osrmr::quit_server()
@symbolrush
symbolrush / apply_rules.R
Last active May 16, 2018 15:16
rule engine - first shot
imsbasics::clc()
apply_rules <- function(data, rules) {
for (i in 1:length(rules)) {
rules_now <- unlist(strsplit(rules[i], ", "))
for (j in 1:length(rules_now)) {
data[i] <- apply_rule(data[i], rules_now[j])
}
}
return(data)
@symbolrush
symbolrush / df-subset-filter
Created April 13, 2016 06:01
subsetting (filtering) of df's
# Testdaten
df <- data.frame(category = c(1,2,3,1,3,2,1), value = rep(10, 7))
# Variante 1:
# Die Klassiker
df[df$category == 2,]
subset(df, category == 2)
# Variante 2:
@symbolrush
symbolrush / df-table-counts-vs-sum.R
Created April 13, 2016 05:55
Einige Varianten für das Zählen von Einträgen mit einer gewissen Kategorie und das summieren von Werten gruppiert nach einer gewissen Kategorie.
# Testdaten
df <- data.frame(category = c(1,2,3,1,3,2,1), value = rep(10, 7))
# Variante 1:
# Falls du nur die Häufigkeit der Einträge der verschiedenen Kaetgorien brauchst:
table(df)
# value
# category 10
# 1 3
# Error on purpose in line 31-36. Testscript for learning debugging using different options.
imsbasics::clc()
imsbasics::cc()
f1 <- function(a) {
# message("Message f1")
b <- 10
return(a + 1)
}
set.seed(1)
vec <- runif(1000)
vec1 <- vec
print(paste0("Die beiden Vektoren sind identisch: ", all.equal(vec, vec1)))
print(paste0("Die Variante for-loop dauert: ", summary(microbenchmark::microbenchmark(
for (i in 1:length(vec)) {
if (vec[i] > 0.5) {vec[i] <- 10}
}
), unit = "ms")$uq, "ms"))
@symbolrush
symbolrush / dt_vs_df.r
Created March 22, 2016 08:26
short speed test data.frame vs. data.table
library(data.table)
dt <- data.table(a = c(1:10000), b = rep(c("a","b","c"), length = 10000))
df <- data.frame(a = c(1:10000), b = rep(c("a","b","c"), length = 10000))
microbenchmark::microbenchmark(dt[dt$b == "b",], times = 1000, unit = "us")
microbenchmark::microbenchmark(df[df$b == "b",], times = 1000, unit = "us")
microbenchmark::microbenchmark(dt$a[dt$b == "b"], times = 1000, unit = "us")
microbenchmark::microbenchmark(df$a[df$b == "b"], times = 1000, unit = "us")