R: Графические данные - PullRequest
       3

R: Графические данные

1 голос
/ 07 апреля 2011

Я сортирую данные по бинам и усредняю, см. это решение .

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

myData.class <- cut(df$xaxis, seq(0,30,length=60), include.lowest=TRUE)
mean.yaxis <- tapply(df$yaxis, myData.class, mean)
lines(mean.yaxis ~ seq(0, 30, length=60))

При вызове строк выдается ошибка:

Error in model.frame.default(formula = mean.yaxis ~ seq(0, 30, length = 60),  : 
    variable lengths differ (found for 'seq(0, 30, length = 60)')

Вызов str (mean.yaxis) дает:

num [1:59(1d)] 0 0 0 0.349 4.652 ...
- attr(*, "dimnames")=List of 1
  ..$ : chr [1:59] "[0,0.508]" "(0.508,1.02]" "(1.02,1.53]" "(1.53,2.03]" ...

Как я могу получить доступ к правильным данным при вызове строк функций (...)?

Ответы [ 2 ]

2 голосов
/ 07 апреля 2011

Лучшее решение дано в принятом ответе по вашей ссылке. Это построит интервалы на оси X.

cut возвращает коэффициент на 1 уровень меньше вашей последовательности (как вы видели). Если вы хотите интервальные средние значения, вы можете сделать (взяв предыдущий пример):

data(quakes)

Seq <- c(40, 120, 200, 300, 400, 500, 600, 680)
depth.class <- cut(quakes$depth, Seq, include.lowest = TRUE)
mean.mag <- tapply(quakes$mag, depth.class, mean)

class.mids <- Seq[-1] - diff(Seq)/2

plot(mean.mag~class.mids,xlim=range(Seq))
lines(mean.mag~class.mids)

enter image description here

0 голосов
/ 07 апреля 2011

Может быть:

lines(mean.yaxis ~ seq(0, 30, length=length(mean.yaxis)))

HTH

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