Skip to content

Instantly share code, notes, and snippets.

@DavisVaughan
Last active September 12, 2017 16:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DavisVaughan/83392b067904707f9534b5d6c603a82c to your computer and use it in GitHub Desktop.
Save DavisVaughan/83392b067904707f9534b5d6c603a82c to your computer and use it in GitHub Desktop.
# Just an example "vector of means"
vec_of_means <- c(6.4, 2, 3.3, 4.6, 5, 8)
n <- length(vec_of_means)
# Loops!
for(i in 1:(n-1)) {
print(paste0("Hello i: ", vec_of_means[i], " ==="))
for(j in (i+1):n) {
print(paste0("Hello i: ", vec_of_means[i], " Hello j: ", vec_of_means[j]))
}
}
#> [1] "Hello i: 6.4 ==="
#> [1] "Hello i: 6.4 Hello j: 2"
#> [1] "Hello i: 6.4 Hello j: 3.3"
#> [1] "Hello i: 6.4 Hello j: 4.6"
#> [1] "Hello i: 6.4 Hello j: 5"
#> [1] "Hello i: 6.4 Hello j: 8"
#> [1] "Hello i: 2 ==="
#> [1] "Hello i: 2 Hello j: 3.3"
#> [1] "Hello i: 2 Hello j: 4.6"
#> [1] "Hello i: 2 Hello j: 5"
#> [1] "Hello i: 2 Hello j: 8"
#> [1] "Hello i: 3.3 ==="
#> [1] "Hello i: 3.3 Hello j: 4.6"
#> [1] "Hello i: 3.3 Hello j: 5"
#> [1] "Hello i: 3.3 Hello j: 8"
#> [1] "Hello i: 4.6 ==="
#> [1] "Hello i: 4.6 Hello j: 5"
#> [1] "Hello i: 4.6 Hello j: 8"
#> [1] "Hello i: 5 ==="
#> [1] "Hello i: 5 Hello j: 8"
# Compare each value in the vector to the mean of the rest of the vector
purrr::map(1:n,
~vec_of_means[.x] - mean(vec_of_means[-.x]))
#> [[1]]
#> [1] 1.82
#>
#> [[2]]
#> [1] -3.46
#>
#> [[3]]
#> [1] -1.9
#>
#> [[4]]
#> [1] -0.34
#>
#> [[5]]
#> [1] 0.14
#>
#> [[6]]
#> [1] 3.74
# This code does:
# Take 6.4 - mean(all_nums_not_6.4)
# Take 2 - mean(all_nums_not_2)
# Take 3.3 - mean(all_nums_not_3.3)
# ...
# Or he could have been wanting something like
purrr::map(1:n,
~vec_of_means[.x] - dplyr::lead(vec_of_means, .x))
#> [[1]]
#> [1] 4.4 3.1 1.8 1.4 -1.6 NA
#>
#> [[2]]
#> [1] -1.3 -2.6 -3.0 -6.0 NA NA
#>
#> [[3]]
#> [1] -1.3 -1.7 -4.7 NA NA NA
#>
#> [[4]]
#> [1] -0.4 -3.4 NA NA NA NA
#>
#> [[5]]
#> [1] -3 NA NA NA NA NA
#>
#> [[6]]
#> [1] NA NA NA NA NA NA
# This code does:
# Take 6.4 - all_nums_after_6.4
# Take 2 - all_nums_after_2
# Take 3.3 - all_nums_after_3.3
# ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment