To keep the original names, you can also modify @mishabalyasin's approach as follows.
library(tidyverse)
starwars %>%
select(name:eye_color) %>%
mutate_at(vars(ends_with('color')),
list(len = ~str_length(.)))
#> # A tibble: 87 x 9
#> name height mass hair_color skin_color eye_color hair_color_len
#> <chr> <int> <dbl> <chr> <chr> <chr> <int>
#> 1 Luke… 172 77 blond fair blue 5
#> 2 C-3PO 167 75 <NA> gold yellow NA
#> 3 R2-D2 96 32 <NA> white, bl… red NA
#> 4 Dart… 202 136 none white yellow 4
#> 5 Leia… 150 49 brown light brown 5
#> 6 Owen… 178 120 brown, gr… light blue 11
#> 7 Beru… 165 75 brown light blue 5
#> 8 R5-D4 97 32 <NA> white, red red NA
#> 9 Bigg… 183 84 black light brown 5
#> 10 Obi-… 182 77 auburn, w… fair blue-gray 13
#> # … with 77 more rows, and 2 more variables: skin_color_len <int>,
#> # eye_color_len <int>
Created on 2019-06-18 by the reprex package (v0.3.0.9000)