Skip to content

Instantly share code, notes, and snippets.

View martinctc's full-sized avatar
🔥
Packaging up my workflows

Martin Chan martinctc

🔥
Packaging up my workflows
View GitHub Profile
@martinctc
martinctc / power-analysis.py
Last active January 6, 2023 15:42
[Power analysis with python] #python
# estimate sample size via power analysis
from statsmodels.stats.power import TTestIndPower
# parameters for power analysis
effect = 0.8
alpha = 0.05
power = 0.8
# perform power analysis
analysis = TTestIndPower()
@martinctc
martinctc / rank_by_group.R
Last active November 1, 2021 23:57
[Rank a data frame with a grouping variable using entirely base R] #R
#' @title
#' Rank a data frame by grouping variable using base R
#'
#' @description
#' This function ranks a specified column in a data frame by group using entirely base R functions.
#' The underlying function is `rank()`, where additional arguments can be passed with `...`.
#' The grouping variable is specified as a string using the argument `group_var`, and the variable to rank is
#' specified using the argument `rank_var`. The operation is analogous to using `group_by()` followed by
#' `mutate()` in {dplyr}.
#' See example below using the base dataset `iris`.
@martinctc
martinctc / repeat rows based on n
Created July 13, 2021 10:07
[Duplicate rows in data frame based on n] #R
# multiply values based on weights
wtest <-
data.frame(
x = c("cats", "dogs", "birds", "cats"),
y = c(1, 2, 3, 2)
)
wtest[rep(seq_len(nrow(wtest)), wtest$y),]
@martinctc
martinctc / FilterTwoSeriesCopyAndPaste.vbs
Last active July 2, 2021 00:25
FilterTwoSeriesCopyAndPaste
Sub FilterTwoSeriesCopyAndPaste()
Dim S1_String, S2_String As String
'READ VALUES FROM SETTING SHEET -------------------------------------------------------
S1_String = Worksheets("Settings").Range("B2").Value
S2_String = Worksheets("Settings").Range("B3").Value
Debug.Print S1_String
@martinctc
martinctc / map on Rd files.R
Last active April 2, 2021 10:52
[Loop through Rd files] #R
# Load packages -----------------------------------------------------------
library(tidyverse)
# Path where all Rd files live --------------------------------------------
man_path <-
here::here("man")
@martinctc
martinctc / information value.R
Last active March 7, 2021 11:51
[Create base version of Information Value calculations] #R
## Implement Information Value in base?
iris_iv <-
iris %>%
mutate(IsSetosa = ifelse(Species == "setosa", 1, 0))
## Information
infoTables <-
Information::create_infotables(
data = iris_iv,
@martinctc
martinctc / Developer functions in R
Last active April 14, 2021 08:55
[List of R developer tools] #R
# Regular R CMD check
devtools::check()
# Check R-hub
devtools::check_rhub()
# Cross-platform R CRAN check
rhub::check_for_cran()
# Return a character vector with the names of dependencies - CRAN only
@martinctc
martinctc / date expansion.R
Created February 23, 2021 23:33
[Date Expansion using Sundays] #R
## Date expansion
validweeks <-
unique(clean_wbq_totalview$Date) %>%
purrr::map(function(x){
seq(x, x + 6, by = "days")
}) %>%
purrr::reduce(c)
@martinctc
martinctc / import_to_fst.R
Last active February 10, 2021 12:53
[Import to FST] #R
import_to_fst <- function(path){
temp_df <- import_wpa(path)
path_fst <- gsub(pattern = "csv$",
replacement = "fst",
x = path)
fst::write_fst(temp_df, path_fst)
@martinctc
martinctc / jittered_ordinal_points.R
Created January 3, 2021 17:54
[Visualize ordinal data over time with jittered points] #R
library(tidyverse)
10:30 %>%
map(function(x){
prob_v <-
c(x,
100 - 2*x,
100 - x - (100 - 2*x))