Skip to content

Instantly share code, notes, and snippets.

Robert Krzyzanowski robertzk

View GitHub Profile
@robertzk
robertzk / lunchnlearn-073017.md
Last active Jul 31, 2017
Lunch & Learn 07/30/17: R environments
View lunchnlearn-073017.md
env <- new.env()

d <- 1
fn <- function(a, b) {
  a + b + d
}

fn2 <- (function() {
  d <- 2
@robertzk
robertzk / r-python.md
Last active Apr 7, 2016
R-Python itertools rosetta stone
View r-python.md

A translation of Python's itertools to R.

count(10) # 10 11 12 13 14 ...
count <- function(x, step = 1) {
  function() { (x <<- x + step) }
}
@robertzk
robertzk / capture_stack_trace.R
Created Jan 19, 2016
Capture an R stack trace
View capture_stack_trace.R
capture_calls <- function(e) {
e$calls <- sys.calls()
signalCondition(e)
}
fn <- function(x) {
call_another_function(x + 1)
}
call_another_function <- function(y) {
@robertzk
robertzk / example_fn_aliasing.R
Created Jan 16, 2016
Example of function aliasing
View example_fn_aliasing.R
for (i in 1:10) {
assign(paste0("fn", i), eval(bquote(function(x) { x + .(i) })))
}
#' This is my function.
#'
#' This does stuff.
#'
#' @param x
#' @return foo.
@robertzk
robertzk / error_handling.R
Created Nov 2, 2015
Capture error handling in R
View error_handling.R
ref_filename <- function(ref) {
attr(ref, "srcfile")$filename
}
frame_text <- function(frame) {
if (identical(frame, .GlobalEnv)) {
structure(pkg = "_global",
"global environment"
)
@robertzk
robertzk / s3subset.R
Created Sep 2, 2015
S3 subsetting overloading
View s3subset.R
wrapped <- function(obj) {
structure(obj, class = "wrapped")
}
`[[.wrapped` <- function(obj, x) {
if (x == "predict") {
.subset2(obj, x)
} else {
.subset2(obj, "model")[[x]]
}
@robertzk
robertzk / Github-PAT-Help.md
Last active Sep 28, 2017
Help with setting up Github PAT token
View Github-PAT-Help.md

Ensure you have a Github account. Next, visit the Github help page to set up your Github auth token.

Make sure git is installed. Open up your terminal, and ensure git is installed by running which git (if you do not see git not found, then you have to do nothing). If you do not have git, run brew install git. Next, configure your git identity.

Finally, copy the authenatication token you obtained earlier, and then run the following line from your terminal (with the token replaced by your token):

echo "export GITHUB_PAT=c1e2feed3242cfa0ab2e560ce4f380f66c6e9547" >> ~/.bash_profile && source ~/.bash_profile
@robertzk
robertzk / Setting-Up-Hipchat-Token.md
Last active Aug 29, 2015
Setting up your hipchat token.
View Setting-Up-Hipchat-Token.md

Setting up your Hipchat API token

First, visit the Hipchat account API page. You will have to login with you avantcredit.com hipchat account.

Scroll down and create your Hipchat token with the following permissions:

Create New Token

The token should appear in the list above. Copy the token, and then run the following line from your terminal (with the token replaced by your token):

@robertzk
robertzk / send.vim
Created Jul 26, 2015
vim send macro
View send.vim
let @s='^i! git add "$(git rev-parse --show-toplevel)"; git commit -m "^[$a"; git push -q origin `git rev-parse --abbrev-ref HEAD` &^[dd;w^M;@"^M^M^['
@robertzk
robertzk / Syberia-FAQ
Created May 31, 2015
Initial syberia FAQ
View Syberia-FAQ
Can I use CSV files? What about streaming production data? So I have this SAS file...
You can use any kind of data ingest your heart desires. The built-in import stage comes with support for many common formats (link), but it is easy to add more (link).
If you wish to use your live production data, write a package and add an import adapter (link).
What is a mungebit and why are you making up words?
A mungebit is the correct mathematical abstraction for wrangling a data set in a way that you won't have to bug a software or data engineer to make it "production ready" or live in "the data pipeline." It means you can turn the 90% of time data scientists spend on data wrangling into 10%.
You can’t perform that action at this time.