Skip to content

Instantly share code, notes, and snippets.

Avatar

Richard Morey richarddmorey

  • Cardiff University
  • Cardiff, Wales
View GitHub Profile
@richarddmorey
richarddmorey / app2.R
Created Jul 21, 2021
testing answer to stackexchange question
View app2.R
# Test answer to https://stackoverflow.com/questions/68473292/prevent-double-execution-of-shiny-reactive-with-two-dependency-pathways/68475515#68475515
library(shiny)
library(digest)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
textInput("M", "M:", ""),
uiOutput("S_UI"),
@richarddmorey
richarddmorey / sample_constraints.R
Created May 12, 2021
rank constraints in multivariate normals
View sample_constraints.R
## Define MVTN parameters
mu = c(-1,0,1)
Sigma = matrix(
c(1, 0, 0,
0, 1, .5,
0, .5, 1
), 3,3)
p = length(mu)
library(mvtnorm)
@richarddmorey
richarddmorey / corre_sim.R
Created May 8, 2021
simulating correlations
View corre_sim.R
N = 20
library(mvtnorm)
# No shared variance between a and (b,c)
Sigma = matrix(c(1,0,0,
0,1,.5,
0,.5,1), 3, 3)
# Simulation
View guess_number.txt
https://www.theguardian.com/science/2021/feb/08/can-you-solve-it-think-of-a-number
The suggested answer using "yes" and "no" amounts to encoding in base 2, which is inefficient because there are
three possible response options ("yes", "no", "I don't know"). We want to find a way of encoding in base 3, which
amounts to assigning 1/3 of the numbers to "yes", 1/3 to "no", and 1/3 to "I don't know". We can do that by telling
Johnny on the first step (and analogously afterward):
"I have two numbers in mind. One of them is 334. The other is less than 667 but greater than 333, but I will not tell you what it is. Is your
number less than both of my numbers?"
@richarddmorey
richarddmorey / rlogis.R
Created Jan 3, 2021
rlogis, R and JAGS
View rlogis.R
x = rlogis(10000,0,10)
mod = "model{
y ~ dlogis(0, 1/10)
}
"
library(rjags)
m = rjags::jags.model(file = textConnection(mod))
s = rjags::coda.samples(m,n.iter = 10000,variable.names = "y")
@richarddmorey
richarddmorey / time.R
Created Dec 27, 2020
timing subsetting
View time.R
library(tictoc)
df = data.frame(y = rnorm(10000000), x = rbinom(10000000,1,.5))
tic()
z = df[df$x == 1,]$y
toc()
rm(z)
tic()
@richarddmorey
richarddmorey / X2.R
Created Jul 29, 2020
Two proportions, p value
View X2.R
N = c(16, 16)
y = c(3, 9)
actual_result = prop.test(y, N, correct = FALSE)
compute_p_value = function(p0){
## Probability of all outcomes,
## assuming independence
pr_X2s =
outer( dbinom(0:N[1], N[1], p0),
@richarddmorey
richarddmorey / eqt_pvalue.R
Last active Jul 17, 2020
Compute p value for equivalence test
View eqt_pvalue.R
data(attitude)
library(cocor)
## EQtest at alpha = .05 needs a 90% CI
cocor(~ rating + complaints | rating + learning, data = attitude, alternative = "less",
null.value = .2, test = "zou2007", conf.level = .9)
zou_ci_func = function(conf.level, ...)
{
@richarddmorey
richarddmorey / repro_subways.R
Created Jun 21, 2020
Attempt to reproduce Maglio & Polman (2014) Figure 1
View repro_subways.R
## Get file off OSF
tf = tempfile(fileext = ".xlsx")
download.file(url = "https://osf.io/846cb/download", destfile = tf)
## Create summaries
library(tidyverse)
readxl::read_xlsx(tf) %>%
group_by(STN_NUMBER, DIRECTION) %>%
summarise(
@richarddmorey
richarddmorey / planning_precision.Rmd
Created Jun 12, 2020
Figures for "Power and precision" blog post
View planning_precision.Rmd
---
title: "Power and precision"
author: "Richard D. Morey"
date: "11/06/2020"
output:
html_document:
dev: png
self_contained: no
editor_options:
chunk_output_type: console