Skip to content

Instantly share code, notes, and snippets.

@jeromyanglim
jeromyanglim / longlat2countr.r
Created September 1, 2022 00:51
Script for converting latitude and longitude coordinates (e.g., from Qualtrics) into country codes using R
# Script for converting latitude and longitude coordinates (e.g., from Qualtrics) into country codes using R
# Assumes data set is called rcases
# country from coords
library(sp)
# install.packages("rworldmap")
library(rworldmap)
# The single argument to this function, points, is a data.frame in which:
# - column 1 contains the longitude in degrees
# Function to write data.frame to xlsx spreadsheet
write_xlsx <- function(data, file, sheetname = "Sheet1", rowNames = TRUE, ...) {
require("openxlsx")
wb <- createWorkbook()
addWorksheet(wb, sheetname)
writeData(wb, sheetname, data, rowNames = rowNames, ...)
saveWorkbook(wb, file = file, overwrite = TRUE)
}
# Example
@jeromyanglim
jeromyanglim / makefile
Created November 4, 2017 04:24
example of a makefile that runs an r job and sends an email when done.
EMAIL=youremail@gmail.com
SERVER=username@yourserver.com
mode=standard # e.g., quick, standard, publication
all:
make models mode=$(mode)
make ppc mode=$(mode)
make standard-figures mode=$(mode)
make yhat mode=$(mode)
javascript:location %3D %27http://scholar.google.com/scholar%3Fq%3D%27%2Bescape(document.forms%5B0%5D.elements%5B%27q%27%5D.value)%3B
@jeromyanglim
jeromyanglim / import_qualtrics_csv
Last active February 23, 2017 15:09
Function that assists with importing CSV data from Qualtrics into R; it also allows for choosing which categorical variables should be numeric and which labelled.
import_csv_qualtrics <- function(file) {
# import a csv file exported from Qualtrics
# Qualtrics places variable labels in the second row.
# This function removes that second row and returns the data frame.
# taken from:
# http://lowlywonk.blogspot.com.au/2011/05/r-code-to-remove-second-line-of.html
DF <- read.csv(file, skip=2, header=FALSE)
DF2 <- read.csv(file)
names(DF) <- names(DF2)
DF
@jeromyanglim
jeromyanglim / covlm.r
Last active July 26, 2023 17:51
Function that allows you to run a linear model on a covariance matrix using lavaan
# see
# http://stackoverflow.com/questions/20203485/why-is-source-gist-function-in-r-devtools-package-not-working
covlm <- function(dv, ivs, n, cov) {
# Assumes lavaan package
# library(lavaan)
# dv: charcter vector of length 1 with name of outcome variable
# ivs: character vector of names of predictors
# n: numeric vector of length 1: sample size
# cov: covariance matrix where row and column names
@jeromyanglim
jeromyanglim / freqtable.r
Last active July 20, 2016 07:20
Provide frequencies and proportions typically for a data frame containing multiple varies using the same numeric response format (e.g., 1 to 5 likert)
freqtable <- function(X) {
# X: data.frame of typically survey items
# Code assumes that all items are numeric (i.e., 1 to 5, rather than text labels)
unique_values <- unique(unlist(sapply(X, unique)))
su <- sort(unique_values)
freq <- t(sapply(X, function(Z) table(factor(Z, su))))
prop <- t(sapply(X, function(Z) prop.table(table(factor(Z, su)))))
list(freq = freq, prop = prop)
}
@jeromyanglim
jeromyanglim / charnum2num.r
Last active August 29, 2015 14:06
Take a data.frame x and convert all columns of class character that appear to be numeric into numeric
charnum2num <- function(x) {
# Purpose
# Take a data.frame x and convert all columns of class character that appear to be numeric into numeric
# x is a data.frame
# code taken from library(Hmisc) and included here to avoid the dependency
all.is.numeric <- function (x, what = c("test", "vector"), extras = c(".", "NA"))
{
what <- match.arg(what)
old <- options(warn = -1)
on.exit(options(old))
@jeromyanglim
jeromyanglim / CollapseHeadings.bas
Created December 14, 2012 07:25
Simple VBA script that I use in Mac Word for collapsing Up headings in Outline View; it works for me, but I've had it floating around for so long, I barely remember how it works.
Sub CollapseHeadings()
' Use this code at your own risk
' It works for me. I use it in Word documents while in Outline View
' for documents set up with Outline View in mind
' Remember Ctrl + Pause Break will get break the program
On Error GoTo ErrorHandler
Dim r As Range, o As Integer, p As Long, f As Boolean
Dim currentOutlineLevel, nextOutlineLevel
Dim timeout As Integer ' used to pre
@jeromyanglim
jeromyanglim / keys.css
Created October 25, 2012 11:42
keys css
kbd{white-space:nowrap;
color:#000;
background:#eee;
border-style:solid;
border-color:#ccc #aaa #888 #bbb;
padding:2px 6px;
-moz-border-radius:4px;
-webkit-border-radius:4px;
border-radius:4px;
-moz-box-shadow:0 2px 0 rgba(0, 0, 0, 0.2),0 0 0 1px #ffffff inset;