there are ways to do it manuallly with names() and also with tidyverse packages rename()
but theres also a neat package that does well for many needs with very automated approach.
mybaddf <- structure(list(c(5.1, 4.9, 4.7, 4.6, 5, 5.4), c(
3.5, 3, 3.2, 3.1, 3.6, 3.9), c(1.4, 1.4, 1.3, 1.5, 1.4, 1.7), c(
0.2, 0.2, 0.2, 0.2, 0.2, 0.4)), .Names = c(
"terrible name",
"?also bad", "234dontlike", NA_character_
), row.names = c(NA, -5L), class = c(
"tbl_df",
"tbl", "data.frame"
))
mybaddf
# A tibble: 5 x 4
# `terrible name` `?also bad` `234dontlike` NA
# <dbl> <dbl> <dbl> <dbl>
# 1 5.1 3.5 1.4 0.2
# 2 4.9 3 1.4 0.2
# 3 4.7 3.2 1.3 0.2
# 4 4.6 3.1 1.5 0.2
# 5 5 3.6 1.4 0.2
library(janitor)
(better_df <- janitor::clean_names(mybaddf))
# A tibble: 5 x 4
# terrible_name also_bad x234dontlike na
# <dbl> <dbl> <dbl> <dbl>
# 1 5.1 3.5 1.4 0.2
# 2 4.9 3 1.4 0.2
# 3 4.7 3.2 1.3 0.2
# 4 4.6 3.1 1.5 0.2
# 5 5 3.6 1.4 0.2