Skip to content

Instantly share code, notes, and snippets.

View bearloga's full-sized avatar
🎲
RAND()

Mikhail Popov bearloga

🎲
RAND()
View GitHub Profile
@bearloga
bearloga / example.md
Created March 16, 2016 23:24
Augments dplyr::top_n() to also return a summary of the remainder of the dataset that didn't make the cut. Useful when working with proportions.
library(magrittr)
library(dplyr)
library(stringr)

df <- mtcars; df$car <- rownames(df)

df %>%
  mutate(make = str_extract(car, "^[A-Za-z]+\\b")) %>%
 group_by(make) %&gt;%
@bearloga
bearloga / wikipedia_multilang_subtitles.R
Created May 23, 2016 21:25
Visits every Wikipedia in every language and grabs the title + subtitle.
suppressMessages({
# Preamble ========================================
# ======== Web Scraping ===========================
library(rvest) # install.packages('rvest')
library(magrittr)
# ======== I/O ====================================
library(httr) # install.packages('httr')
})
html <- read_html("https://wikipedia.org")
---
title: "dyEvent Example"
output:
html_document:
css: style.css
---
```{r setup, echo = FALSE, warning = FALSE, message = FALSE}
library(xts)
library(dygraphs)

Keybase proof

I hereby claim:

  • I am bearloga on github.
  • I am mikhailpopov (https://keybase.io/mikhailpopov) on keybase.
  • I have a public key ASCf0zmMPu2vZKS1L64MOIaEEZ2n4ZsLRhW64H1k0sO5TQo

To claim this, I am signing this object:

@bearloga
bearloga / test_2016-12-16_23:48:33.log.md
Last active December 20, 2016 17:10
Rscript test.R --start_date=2016-12-01 --end_date=2016-12-02 >> test_`date +%F_%T`.log.md 2>&1

Test Run

Parameters

start_date end_date omit_times disable_forecasts help
2016-12-01 2016-12-02 FALSE FALSE FALSE

Reports

@bearloga
bearloga / app.R
Created January 24, 2017 02:07
A Shiny app with the header (title) panel fixed in place at the top as the user scrolls down.
header <- headerPanel("Hello Shiny!")
header[[2]]$attribs$id = "header"
ui <- fluidPage(
tags$head(
tags$link(rel = "stylesheet", type = "text/css", href = "custom.css")
),
header,
sidebarLayout(
sidebarPanel(sliderInput("obs", "Number of observations:", min = 0, max = 1000, value = 500)),
@bearloga
bearloga / data.R
Last active February 8, 2017 16:43
Scripts for scraping divorce demographics by country from Wikipedia and plotting it in R with ggplot2 with the respective country flags in place of points.
## Script for scraping Wikipedia for data to use with the geom_flag() prototype
## CONTACT: Mikhail Popov (@bearloga // mikhail[at]mpopov[dot]com)
## URL: https://gist.github.com/bearloga/519a701a6a9bc7c3ba9f
# install.packages("import")
library(rvest) # install.packages("rvest")
library(magrittr)
import::from(dplyr, mutate, select, keep_where = filter, left_join, distinct)
@bearloga
bearloga / wdqs-cocktails.R
Created April 21, 2017 18:48
Fetches cocktails and their ingredients from Wikidata using SPARQL and Wikidata Query Service
cocktails <- WikidataQueryServiceR::query_wikidata('
SELECT DISTINCT ?cocktailLabel ?ingredientLabel ?instanceOfLabel ?subclassLabel
WHERE
{
?cocktail wdt:P31/wdt:P279* wd:Q134768 .
?cocktail wdt:P186 ?ingredient .
OPTIONAL {
?ingredient wdt:P279 ?subclass .
}
OPTIONAL {
@bearloga
bearloga / dl2csv.R
Created November 9, 2017 18:15
Some code for converting an HTML description list into an R data.frame that can then be exported as a CSV.
library(rvest)
x <- "<dl>
<dt>Coffee</dt>
<dd>Black hot drink</dd>
<dt>Milk</dt>
<dd>White cold drink</dd>
</dl>"
y <- read_html(x)
@bearloga
bearloga / mkrproj.sh
Last active January 3, 2018 14:59
A bash shell script that can be used to turn the current directory into an RStudio project, opening the project in RStudio after creating it.
#!/bin/bash
# Usage: mkproj [projectname]
# projectname defaults to name of current directory
template="Version: 1.0\nRestoreWorkspace: Default\nSaveWorkspace: Default\nAlwaysSaveHistory: Default\n\nEnableCodeIndexing: Yes\nUseSpacesForTab: Yes\nNumSpacesForTab: 4\nEncoding: UTF-8\n\nRnwWeave: knitr\nLaTeX: pdfLaTeX"
wd=$(basename `pwd`)
if [ -z $1 ]; then