muddle.Rd
Shuffle any of the columns of a data.frame
to artificially distort relationships.
muddle(
data,
at,
...
)
A data.frame
.
A vector of quoted/unquoted columns, positions, and/or tidyselect::select_helpers
. Defaults to all columns.
Additional arguments passed to sample
.
#Set a seed
set.seed(123)
#Default permutes all columns
heart_disease %>%
muddle
#> # A tibble: 303 × 9
#> Age Sex ChestPain BP Cholesterol BloodSugar MaximumHR
#> <dbl> <fct> <fct> <dbl> <dbl> <lgl> <dbl>
#> 1 43 Female Non-anginal pain 130 214 FALSE 120
#> 2 44 Male Asymptomatic 130 204 FALSE 143
#> 3 68 Female Asymptomatic 128 242 FALSE 125
#> 4 35 Female Asymptomatic 120 269 FALSE 163
#> 5 45 Female Atypical angina 138 240 FALSE 169
#> 6 54 Male Asymptomatic 128 209 FALSE 182
#> 7 61 Male Asymptomatic 100 258 FALSE 152
#> 8 57 Female Asymptomatic 152 229 FALSE 142
#> 9 67 Male Non-anginal pain 110 283 FALSE 138
#> 10 51 Female Atypical angina 125 204 TRUE 161
#> # ℹ 293 more rows
#> # ℹ 2 more variables: ExerciseInducedAngina <fct>, HeartDisease <fct>
#Permute select columns
heart_disease %>%
muddle(
at = c(Age, Sex)
)
#> # A tibble: 303 × 9
#> Age Sex ChestPain BP Cholesterol BloodSugar MaximumHR
#> <dbl> <fct> <fct> <dbl> <dbl> <lgl> <dbl>
#> 1 47 Male Typical angina 145 233 TRUE 150
#> 2 49 Female Asymptomatic 160 286 FALSE 108
#> 3 59 Male Asymptomatic 120 229 FALSE 129
#> 4 35 Male Non-anginal pain 130 250 FALSE 187
#> 5 44 Female Atypical angina 130 204 FALSE 172
#> 6 29 Female Atypical angina 120 236 FALSE 178
#> 7 45 Male Asymptomatic 140 268 FALSE 160
#> 8 59 Male Asymptomatic 120 354 FALSE 163
#> 9 46 Male Asymptomatic 130 254 FALSE 147
#> 10 54 Male Asymptomatic 140 203 TRUE 155
#> # ℹ 293 more rows
#> # ℹ 2 more variables: ExerciseInducedAngina <fct>, HeartDisease <fct>
#Using a select helper
heart_disease %>%
muddle(
at = matches("^S")
)
#> # A tibble: 303 × 9
#> Age Sex ChestPain BP Cholesterol BloodSugar MaximumHR
#> <dbl> <fct> <fct> <dbl> <dbl> <lgl> <dbl>
#> 1 63 Male Typical angina 145 233 TRUE 150
#> 2 67 Male Asymptomatic 160 286 FALSE 108
#> 3 67 Male Asymptomatic 120 229 FALSE 129
#> 4 37 Male Non-anginal pain 130 250 FALSE 187
#> 5 41 Female Atypical angina 130 204 FALSE 172
#> 6 56 Female Atypical angina 120 236 FALSE 178
#> 7 62 Male Asymptomatic 140 268 FALSE 160
#> 8 57 Male Asymptomatic 120 354 FALSE 163
#> 9 63 Male Asymptomatic 130 254 FALSE 147
#> 10 53 Male Asymptomatic 140 203 TRUE 155
#> # ℹ 293 more rows
#> # ℹ 2 more variables: ExerciseInducedAngina <fct>, HeartDisease <fct>
#Pass other arguments
heart_disease %>%
muddle(
size = 5,
replace = TRUE
)
#> # A tibble: 5 × 9
#> Age Sex ChestPain BP Cholesterol BloodSugar MaximumHR
#> <dbl> <fct> <fct> <dbl> <dbl> <lgl> <dbl>
#> 1 41 Male Atypical angina 135 321 FALSE 180
#> 2 42 Male Atypical angina 128 212 TRUE 172
#> 3 63 Male Typical angina 152 234 FALSE 115
#> 4 37 Male Non-anginal pain 130 289 FALSE 71
#> 5 41 Male Atypical angina 150 160 FALSE 192
#> # ℹ 2 more variables: ExerciseInducedAngina <fct>, HeartDisease <fct>