-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathmutate_map_funs.R
More file actions
50 lines (49 loc) · 1.82 KB
/
mutate_map_funs.R
File metadata and controls
50 lines (49 loc) · 1.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
mutate_map_brks <- function (input, variable,n,style, ...)
{
if (style == "quantile"){
var_string <- deparse(substitute(variable))
quants <- classIntervals(input[[var_string]], style = "quantile",n=n,
...)$brks
if (any(0 == quants))
brk_vec <- quants
else brk_vec <- c(0, quants)
lab_length <- length(brk_vec) - 1
brk_labs <- vector(mode = "character", length = lab_length)
for (i in seq(lab_length)) {
if (any(brk_vec%%1 != 0)) {
brk_labs[i] <- paste0(round(brk_vec[i], 2), "-",
round(brk_vec[i + 1], 2))
}
else if (any(brk_vec%%1 == 0)) {
brk_labs[i] <- paste0(brk_vec[i], "-", brk_vec[i +
1])
}
}
input[[paste0(var_string, "_qbrks")]] <- cut(input[[var_string]],
breaks = brk_vec, labels = brk_labs, include.lowest = TRUE)
return(input)
}
else if (style =="jenks"){
var_string <- deparse(substitute(variable))
jenks <- classIntervals(input[[var_string]], style = "jenks",n=n,
...)$brks
if (any(0 == jenks))
brk_vec <- jenks
else brk_vec <- c(0, jenks)
lab_length <- length(brk_vec) - 1
brk_labs <- vector(mode = "character", length = lab_length)
for (i in seq(lab_length)) {
if (any(brk_vec%%1 != 0)) {
brk_labs[i] <- paste0(round(brk_vec[i], 2), "-",
round(brk_vec[i + 1], 2))
}
else if (any(brk_vec%%1 == 0)) {
brk_labs[i] <- paste0(brk_vec[i], "-", brk_vec[i +
1])
}
}
input[[paste0(var_string, "_jbrks")]] <- cut(input[[var_string]],
breaks = brk_vec, labels = brk_labs, include.lowest = TRUE)
return(input)
}
}