Хобрук: Ваш путь к мастерству в программировании

R: Нанесите два набора данных на одну строку

Довольно новичок в R и хотел посмотреть, возможно ли это. У меня есть набор данных ниже, и я хочу построить x и y на одной линии, чтобы y продолжался с того места, где x остановился на 19, и продолжился на 21 с ggplot2.

Сможет ли R справиться с этим, если у меня будет больше столбцов, таких как a, b, ect?

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

Красные точки = x Зеленые точки = y

mydata = structure(list(q = 1:7, x = c(12L, 18L, 21L, 19L, 0L, 0L, 0L), 
    y = c(0L, 0L, 0L, 0L, 21L, 25L, 23L)), .Names = c("q", "x", 
"y"), class = "data.frame", row.names = c(NA, -7L))
27.01.2017

  • потенциальный дубликат. stackoverflow.com /вопросы/37034285/ 27.01.2017
  • @ Ллойд Кристмас. Я считаю, что ссылка спрашивала то же самое. Я ищу, но не смог найти конкретный вопрос, который вы связали, возможно, я искал его неправильно. Спасибо. 28.01.2017

Ответы:


1

Попробуйте это с сюжетом base R:

df <- read.table(text='q x y 
                 1 12 0 
                 2 18 0 
                 3 21 0 
                 4 19 0 
                 5 0 21 
                 6 0 25 
                 7 0 23 ', header=TRUE)

df$y[df$y==0] <- df$x[df$x!=0]
plot(df$q, df$y, pch=19, col=ifelse(df$x==0, 'green', 'red'), xlab='q', ylab='x or y')
lines(df$q, df$y, col='steelblue')

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

lines(df$q, df$y, col='red')
lines(df$q[df$x==0], df$y[df$x==0], col = 'green')

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

27.01.2017
  • Спасибо, Сандипан, все работает. Выходя из вашего кода, если я хочу, чтобы линия изменила цвет, чтобы зеленые точки получили зеленую линию, я бы изменил ее на строки (df $ q, df $ y, col = ifelse (d $ x == 0, «зеленый», «красный)) 28.01.2017
  • Спасибо, Сандипан, отлично выглядит 30.01.2017

  • 2

    Вам нужно изменить форму данных, используя пакет tidyr и функцию gather (ggplot2 любит длинные данные), а затем удалить точки, равные нулю.

    library(tidyr)
    library(ggplot2)
    
    df <- data.frame(q = seq(1:7),
                     x = c(12,18,21,19,0,0,0),
                     y = c(0,0,0,0, 21, 25, 23))
    
    plot_data <- gather(df, variable, value, -q) 
    
    plot_data <- plot_data[plot_data$value != 0,]
    
    ggplot(plot_data, aes(x = q, y = value)) +
      geom_line(color = "black") +
      geom_point(aes(color = variable))
    

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

    27.01.2017
  • Спасибо, Джейк. Использование знания того, как это сделать в ggplot, потрясающе 01.02.2017
  • Новые материалы

    Учебные заметки JavaScript Object Oriented Labs
    Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

    Разбор строк запроса в vue.js
    Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

    Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
    «Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

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