Создание 2D-сетки или растра в R для сравнения всех респондентов со всеми переменными

воспроизводимый пример для моих данных:

df_1 <- data.frame(cbind("Thriving" = c(2.33, 4.21, 6.37, 5.28, 4.87, 3.92, 4.16, 5.53), "Satisfaction" = c(3.45, 4.53, 6.01, 3.87, 2.92, 4.50, 5.89, 4.72), "Wellbeing" = c(2.82, 3.45, 5.23, 3.93, 6.18, 4.22, 3.68, 4.74), "id" = c(1:8)))

Как видите, он включает в себя три переменные психологических показателей и один идентификатор с id для каждого респондента.

Теперь моя цель состоит в том, чтобы создать 2D-сетку, с помощью которой я могу получить хороший обзор всех значений для всех респондентов, касающихся каждой из переменных. Таким образом, по оси X у меня будут идентификаторы всех респондентов, а по оси Y — все переменные, тогда как цвет конкретного поля зависит от значения — от 1 до 3 красным, от 3 до 5 желтым и от 5 до 7 зеленым Стиль сетки должен быть таким, как на этом изображении.

Все, чего я добился до сих пор, — это следующий код, который сжимает все переменные/элементы в один столбец, чтобы их можно было вместе отобразить на оси Y — идентификатор, конечно же, включен в свой собственный столбец, как и значения:

df_1 %>%
  select("Thr" = Thriving, "Stf" = Satisfaction, "Wb" = Wellbeing, "id" = id) %>%
  na.omit %>%
  gather(key = "variable", value = "value", -id) %>%

Я ищу решение, которое работает без сохранения данных в новом фрейме.

Кроме того, я ищу решение, которое было бы полезно даже для 100 или более респондентов и примерно до 40 переменных. Не имеет значения, если один прямоугольник будет тогда очень маленьким, я просто хочу получить красивую игру цветов, которая даст хорошее представление о том, где организация может достичь низких или высоких результатов, и как она достигает в целом.

Спасибо за прочтение, очень благодарен за любую помощь!


person Andreas G.    schedule 01.06.2018    source источник


Ответы (1)


Вероятно, существует лучший подход, ориентированный на графику, но вы можете сделать это с помощью базового графика и обработки ваших данных как растра:

library(raster)
df_1 <- cbind("Thriving" = c(2.33, 4.21, 6.37, 5.28, 4.87, 3.92, 4.16, 5.53), "Satisfaction" = c(3.45, 4.53, 6.01, 3.87, 2.92, 4.50, 5.89, 4.72), "Wellbeing" = c(2.82, 3.45, 5.23, 3.93, 6.18, 4.22, 3.68, 4.74), "id" = c(1:8))
r <- raster(ncol=nrow(df_1), nrow=3, xmn=0, xmx=8, ymn=0, ymx=3)
values(r) <- as.vector(as.matrix(df_1[,1:3]))
plot(r, axes=F, box=F, asp=NA)
axis(1, at=seq(-0.5, 8.5, 1), 0:9)
axis(2, at=seq(-0.5, 3.5, 1), c("", colnames(df_1)), las=1)

введите здесь описание изображения

person Robert Hijmans    schedule 01.06.2018
comment
Эй, спасибо за ваш ответ! Есть ли способ заменить постепенную цветовую палитру легендой только с этими тремя цветами? Кроме того, как вы думаете, выполнимо ли добавление около 100 респондентов и 40 переменных? - person Andreas G.; 01.06.2018