Создание 2D-сетки или растра в R, сравнивающих всех респондентов со всеми переменными - PullRequest
0 голосов
/ 01 июня 2018

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

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)))

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

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

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

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

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

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

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

1 Ответ

0 голосов
/ 01 июня 2018

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

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)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...