Skip to content

Instantly share code, notes, and snippets.

@joosti
joosti / linear regression GLA.r
Last active August 29, 2015 14:08
Linear regression: Example of a GLA that makes use of matrices
# include library
library(gtTranslator)
# define gla
gla <- MakeGLA(types = list(xType),
constants = list(size = xType$size),
representation = list(count = integer, XXT = translator::matrix(ncol = size, nrow = size), XY = xType),
prototype = function(count = 0, XXT = zeros(size, size), XY = zeros(size)){},
# Add item: get called for each tuple in independent processes
AddItem = function(x, y) {
count = count + 1L
@joosti
joosti / 0_reuse_code.js
Last active August 29, 2015 14:08
Here are some things you can do with Gists in GistBox.
// Use Gists to store code you would like to remember later on
console.log(window); // log the "window" object to the console
@joosti
joosti / import_csv.sas
Last active August 29, 2015 14:10
SAS, import csv
filename MYFILE "C:\temp\myData.csv";
data myData;
infile MYFILE dsd delimiter="," firstobs=2 LRECL=32767 missover;
input id var1 var2 var3;
run;
@joosti
joosti / import_xlsx.sas
Last active August 29, 2015 14:10
SAS, import xlsx
proc import
OUT = work.myData DATAFILE= "C:\temp\myData.xlsx"
DBMS = xlsx REPLACE;
SHEET = "worksheet1";
GETNAMES = YES;
run;
@joosti
joosti / export_csv.sas
Created November 26, 2014 23:23
SAS macro to export csv
%macro myExport(dset=, file=);
%let filename = "&file";
PROC EXPORT DATA= &dset OUTFILE=&filename DBMS=CSV REPLACE;
RUN;
%mend;
@joosti
joosti / proc_means.sas
Last active August 29, 2015 14:10
SAS proc means
/* summary statistics for full sample */
proc means data=work.myData n mean median stddev;
OUTPUT OUT=work.meansout n= mean= median= stddev= /autoname;
var var1 var2 var3;
run;
/* as above, but repeated by a group (requires sorting on that variable) */
proc means data=work.myData n mean median stddev;
OUTPUT OUT=work.meansout n= mean= median= stddev= /autoname;
var var1 var2 var3;
@joosti
joosti / proc_means_stddev_roa.sas
Last active August 29, 2015 14:10
SAS proc means, computing standard deviation of 5-year ROA
/*
compute standard deviation of ROA over last 5 most recent years (including current)
requires at least 3 years of data
dsin: dataset with gvkey, fyear, firmyear (gvkey || fyear) and roa
dsout: dataset generated: dsin with roa_stddev appended */
%macro roaStdev(dsin=, dsout=);
proc sql;
@joosti
joosti / data_step_by_retain.sas
Created November 29, 2014 13:34
SAS data step, example BY and RETAIN
data dataOut;
set dataIn;
/* repeat for each firm */
by gvkey;
/* remember totsale across observations */
retain totsale;
/* set sum to zero for first obs for each firm */
if first.gvkey then totsale = 0;
/* add sale to total, you may need to set sale to 0 if missing
e.g. if sale eq . then sale = 0;
@joosti
joosti / data_step_lag.sas
Last active August 29, 2015 14:10
SAS data step, lag example
data dataOut;
set dataIn;
by gvkey fyear;
sale_lag1 = ifn(gvkey=lag(gvkey) and fyear=lag(fyear)+1, lag(sale), .);
sale_lag2 = ifn(gvkey=lag2(gvkey) and fyear=lag2(fyear)+2, lag2(sale), .);
run;
@joosti
joosti / proc_sort_nodupkey.sas
Last active August 29, 2015 14:10
SAS proc sort, sorting, nodupkey
/* Sort by firm, year and audit fee (highest first) */
proc sort data=dataIn; by gvkey fyear descending auditfee; run;
/* Keep each first firm-year (keeps highest audit fee) */
proc sort data=dataIn nodupkey dupout=dataDropped; by gkvey fyear;run;