Создание графика плотности в R

Я новичок в R, и я пытаюсь создать график плотности. Я хочу создать график на основе некоторого регрессионного анализа, который я сделал ранее. Итак, в основном, я хочу увидеть связь Z с переменными a, b и c, которые у меня есть. Все переменные имеют значения в диапазоне от 0 до 1 (числовые).

Я пытался использовать ggplot для построения графика, используя следующий код:

     dataset$test <- data.frame(a, b, c)
     ggplot(dataset, aes(Z, colour = test)) + geom_density()

Я не уверен, как сгруппировать переменные a, b, c в 1, чтобы использовать это в цвете функции ggplot (см. Тестовую переменную)

Когда я запускаю ggplot, я получаю эту ошибку: эстетика должна быть либо длиной 1, либо такой же, как data (417): x, color.

Может ли кто-нибудь помочь мне развить этот сюжет?

Спасибо!

См. образец изображения того, что я собираюсь сделать


person Chris M.    schedule 05.12.2017    source источник
comment
Всегда полезно включить набор данных в вопрос или, если он слишком велик, создать образец. Можете ли вы запустить dput (набор данных) и добавить результат к вашему вопросу?   -  person Michael Harper    schedule 05.12.2017
comment
Однако я предполагаю, что вы делаете что-то не так в первой строке при создании dataset$test   -  person Michael Harper    schedule 05.12.2017
comment
Привет, Майки, спасибо за ответ. Боюсь, что выход dput слишком велик. Есть ли что-то конкретное, что вам нужно знать, чтобы я мог вам сказать? Но да, у меня есть сильное чувство, что моя тестовая переменная не такая, какой должна быть. Итак, проблема, я думаю, состоит в том, чтобы сгруппировать 3 переменных в 1?   -  person Chris M.    schedule 05.12.2017
comment
Вы уверены, что плотность - это то, что вам нужно? Я вижу, вы хотите увидеть отношения между числовыми переменными. Плотность даст вам распределение определенной переменной.   -  person AntoniosK    schedule 05.12.2017
comment
Привет, Антони, я добавил образец изображения того, что я пытаюсь создать. См. Ссылку выше. Я хочу увидеть плотность данных и то, как данные Z распределяются по этим трем переменным на одной диаграмме.   -  person Chris M.    schedule 05.12.2017
comment
Я понял. Я опубликую решение с примером набора данных, который выглядит как ваш, чтобы вы могли настроить код (небольшие изменения) для достижения желаемого. График (плотности), который вы опубликовали, показывает, что эти переменные не находятся между 0 и 1. Важно увидеть, как выглядит ваш набор данных. Можете ли вы получить случайную выборку из 20 строк исходного набора данных и dput это?   -  person AntoniosK    schedule 05.12.2017
comment
Привет, Антони, спасибо за код. Да, загруженное мной изображение - это всего лишь образец и имеет разные масштабы. Однако я хочу, чтобы обе мои шкалы находились в диапазоне от 0 до 1, поскольку все мои данные такие. Как я уже сказал, я новичок в R и не уверен, как я могу произвести то, что вы просите. Мой набор данных довольно большой, с 417 наблюдениями и 33 переменными. Код, который вы опубликовали, работает в зависимости от того, что я хочу сделать, но мне все еще нужно исправить масштабы и т. Д.   -  person Chris M.    schedule 05.12.2017
comment
Предполагая, что ваш исходный набор данных df, сделайте следующее: library(dplyr); df_sample = df %>% sample_n(20); dput(df_sample), а затем скопируйте и вставьте structure(...), который он возвращает где-нибудь в вашем вопросе. Затем я скорректирую свое решение под ваш набор данных.   -  person AntoniosK    schedule 05.12.2017
comment
structure(list(pri1994v.new = c(0.971124242839577, 0.647744329408573, 0.394154485216103, 0.669032214778841, 0.558895272448545, 0.87115009526459, 0.49285342359918, 0.540861377691693, 0.607204753550897, 0.670138114840184, 0.577973091496735, 0.749688203651789, 0.450595315118593, 0.605513949419096, 0.821524305486969, 0.710100280689779, 0.39947194003917, 0.456354118474409, 0.678656882405299, 0.630717334138923), pan1994v.new = c(0.293603032268667, -0.83710403598108, -0.442664864917589, 0.935217001823215, -0.850628344666785 Опять же, он возвращает много данных   -  person Chris M.    schedule 05.12.2017
comment
Он должен вернуть 20 строк x количество столбцов, которые у вас есть. Комментарии имеют ограничение на количество символов, поэтому вы не можете опубликовать их целиком. Однако я думаю, что вы сможете настроить мой код под свой набор данных. Также подумайте, как 33 графика плотности будут выглядеть на одном графике. Вы не сможете ясно увидеть каждый из них.   -  person AntoniosK    schedule 05.12.2017
comment
Весь мой набор данных состоит из 33 переменных, но я хочу использовать только 3 из них для этого графика. В общем, как на графике, который я опубликовал выше, но со шкалой от 0 до 1 (забыл изменить их на фото). Спасибо!   -  person Chris M.    schedule 05.12.2017
comment
Если шкала уже 0-1, больше ничего делать не нужно. Просто создайте df как интересующий набор данных (i, e, исходный набор данных только с этими 3 столбцами) и используйте опубликованный мной код. Это должно сработать.   -  person AntoniosK    schedule 05.12.2017