Есть ли функция, которая вычисляет среднее из n шестнадцатеричных цветов в R? - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть df с образцами в виде строк.У каждой есть три переменные, которые имеют разные цвета в шестнадцатеричном формате.Есть ли функция для усреднения этих цветов без преобразования в rgb?

   id       x       y       z
1   0 #EE30A7 #EE30A7 #3D3D3D
2   1 #ED31A5 #EC30A5 #3D3E3C
3   2 #EC33A4 #EA30A4 #3E3F3C
4   3 #EB34A3 #E830A3 #3F413C
5   4 #EA36A2 #E630A2 #40423C
6   5 #E937A1 #E530A1 #41443C
7   6 #E8399F #E330A0 #42453C
8   7 #E83A9E #E1309F #43473C
9   8 #E73C9D #DF319E #44483C
10  9 #E63E9C #DE319D #45493C

К этому df я хочу добавить еще один цвет среднего цвета.

1 Ответ

1 голос
/ 23 сентября 2019

Я попытаюсь сделать это, как бы ужасно это ни было:

rgb(t(Reduce(`+`, lapply(dat[c("x","y","z")], col2rgb))/3), maxColorValue=255)
# [1] "#B33483" "#B23582" "#B13681" "#B03780" "#B03880" "#AF397F" "#AF3A7E" "#AE3B7D" "#AE3C7D"
#[10] "#AD3D7C"

По сути, я использую col2rgb для создания набора матриц r / g / b, которые я затемсреднее значение по всему, и преобразовать обратно в шестнадцатеричную строку.Я не уверен, соответствует ли это вашей " функции для усреднения этих цветов без преобразования ее в rgb ".

...