Предположим, у меня есть кадр данных с любым количеством переменных плюс 3 переменные для цвета RGB. Я хочу преобразовать цвет RGB в LAB и добавить их в фрейм данных. Вот уродливый код:мутировать несколько столбцов, сгенерированных с помощью одной функции?
df <- data.frame(id=c(1:10),red=runif(10),green=runif(10),blue=runif(10))
df <- cbind(df,convertColor(subset(df,select=c("red","green","blue")),from="sRGB",to="Lab"))
Было бы здорово, если бы мутировать может генерировать несколько переменных с помощью одного вызова; например (псевдокод):
df <- data.frame(id=c(1:10),red=runif(10),green=runif(10),blue=runif(10))
df <- df %>% mutate(list("L","a","b") = convertColor(cbind(red,green,blue),from="sRGB",to="Lab"))
Есть ли аналогичный подход с использованием dplyr?
Быстрый комментарий, пожалуйста, избегайте 'df' как имени для data.frame. 'df' уже является функцией R. Вместо этого вы можете использовать 'DF'. –
Я не уверен, почему первый код «уродливый» - он требует меньше ввода, чем 'dplyr' делает ?! Кроме того, вы можете упростить, например, 'cbind (df, convertColor (df [c (" красный "," зеленый "," синий ")], from =" sRGB ", to =" Lab "))' – thelatemail
@Pascal «Я играю вокруг с плотностями и распределениями F, я не думаю, что использование« df »для быстрого примера наносит большой вред ... –