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

Как сопоставить некоторые переменные фрейма данных с другими?

Функция pair () создает p-диаграмму рассеяния всех p x p пар переменных.

    x<-rnorm(100,0,1)
    y<-rnorm(100,0,1)
    z<-rnorm(100,1,1)
    t<-rnorm(100,2,10)
    dd<-cbind(x,y,z,t)
    pairs(dd)

Но я хотел бы иметь возможность выбирать для «линий» и столбцов сетки. Например, постройте эти пары (x, y) (x, z) (t, y) (t, z). Есть ли функция, которая принимает, например, формулу типа (x + t) ~ (z + y)?

30.03.2016

Ответы:


1

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

pairs(dd, horInd=c(1, 4), verInd=c(2,3))

Пользовательская функция:

my_pairs <- function(df, formula) {
  form <- deparse(formula)
  s <- strsplit(form, "~")
  lhs <- trimws(unlist(strsplit(s[[1]][1], "\\+")))
  rhs <- trimws(unlist(strsplit(s[[1]][2], "\\+")))

  lhs.ind <- match(lhs, colnames(df))
  rhs.ind <- match(rhs, colnames(df))
  all_cmbs <- expand.grid(lhs.ind, rhs.ind)
  rows <- all_cmbs[,1]
  cols <- all_cmbs[,2]
  par(mfrow=c(2,2))
  for(i in 1:4) {
    eval(substitute(plot(df[,rows[i]], df[,cols[i]], 
                         xlab=colnames(df)[rows[i]],
                         ylab=colnames(df)[cols[i]])))
  }
}

my_pairs(dd, x + t ~ y + z)
30.03.2016
  • Большое спасибо, Пьер. Мне так стыдно, что я не увидел этих аргументов на странице справки. (merci beaucoup, si ton nom révèle bien que tu es français). Мне просто нужно увидеть названия осей и такие детали. Спасибо за помощь ! 31.03.2016
  • Изменить: похоже, версия R 3.1.1 не включает эти аргументы. Итак, на своем компьютере я нашел аргументы в помощь, но не на компьютере моего коллеги. Просто добавлю это для тех, кто не найдет аргументов. 31.03.2016
  • Новые материалы

    Учебные заметки 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 и как создать свое первое приложение с помощью простых и понятных шагов, а..