# 1
<- d %>%
d mutate(s=factor(c("M", "F"))[as.numeric(substr(id,nchar(id),nchar(id))) %% 2])
# 2
<- d %>% filter(s=="M") mData
Naming stuff
Author
Published
January 10, 2024
1 Om at navngive ting
1.1 Mening / formål
Lad variabler, funktion og filers navne være sigende for deres mening.
Kig på koden og foreslå bedre variable navne
Løsningsforslag
Desværre findes funktionen cpr2sex
ikke i hverken basis R eller Tidyverse, men vi kan jo lave den selv:
Tip
# Requires a custom function like this -- which could be sourced from file
cpr2sex <- function(x) {
# This function takes a string (x), presumed to be a valid Danish CPR
# and return "F", "M" or NA depending on the last character in the string
# If the last CPR character is an even number, it indicates female sex, and
# an odd number indicates male sex.
if (str_sub(x, str_length(x), str_length(x)) %in% c("0","2","4","6","8")) {
return("F")
} else if (str_sub(x, str_length(x), str_length(x)) %in% c("1","3","5","7","9")) {
return("M")
}
return(NA) # Last character in CPR is not a ciffre
}
Vi kunne så gemme denne funktion i en separat fil og ’source’e den … eller skrive en ny R pakke.
1.2 Sammensatte navne
- Brug under_scores
- Brug ikke camelCase
- Brug ikke kebab-case
1.3 Navneord og verber
1.4 Navne
Hovedpointer
- Navne skal være meningsbærende
- Brug under_scores, ikke CamelCase, ej heller kebab-case
- Funktionsnavne bør være verber
- Variabelnavne bør være navneord