Используя следующий код:внахлест участки в R - от зоопарка пакета
library("ggplot2")
require(zoo)
args <- commandArgs(TRUE)
input <- read.csv(args[1], header=F, col.names=c("POS","ATT"))
id <- args[2]
prot_len <- nrow(input)
manual <- prot_len/100 # 4.3
att_name <- "Entropy"
att_zoo <- zoo(input$ATT)
att_avg <- rollapply(att_zoo, width = manual, by = manual, FUN = mean, align = "left")
autoplot(att_avg, col="att1") + labs(x = "Positions", y = att_name, title="")
С данными:
> str(input)
'data.frame': 431 obs. of 2 variables:
$ POS: int 1 2 3 4 5 6 7 8 9 10 ...
$ ATT: num 0.652 0.733 0.815 1.079 0.885 ...
я: Я хотел бы загрузить input2
который имеет различную длину (поэтому по-разному оси x) и перекрывают 2 кривые в одном и том же графике (я имею в виду перекрытие, потому что я хочу, чтобы две кривые имели один и тот же размер графика, поэтому я буду «игнорировать» метки перекрытия и титры), я хотел бы сравните s hape, учитывает длину ввода.
Сначала я пытался генерируя игрушку input2
изменяя manual
значение, так что у меня att_avg2
, в котором manual
равна, например, 7. Между оригиналом autoplot
и новым autoplot
-2 Я добавляю par(new=TRUE)
, но это не мой ожидаемый результат. Любой намек на то, как это сделать? Может быть, лучше сохранить att_avg
от серии зоопарков до data.frame и не использовать autoplot
? Благодаря
UPDATE, ответ Г. Гротендиком:
Если я:
[...]
att_zoo <- zoo(input$ATT)
att_avg <- rollapply(att_zoo, width = manual, by = manual, FUN = mean, align = "left") #manual=4.3
att_avg2 <- rollapply(att_zoo, width = 7, by = 7, FUN = mean, align = "left")
autoplot(cbind(att_avg, att_avg2), facet=NULL) +
labs(x = "Positions", y = att_name, title="")
Я получаю и предупреждающее сообщение: Removed 1 rows containing missing values (geom_path).
Привет, Г. Гротендик, спасибо за Ваш ответ. Я применил ваше предложение, но у меня появился неожиданный сюжет, см. Обновление. – PGreen
У вас, вероятно, есть NA в объекте zb cbind'ed. Его по таким причинам вы должны предоставить полные автономные примеры, которые включают в себя входы. Попробуйте 'autoplot (na.approx (cbind (z1, z2)), facet = NULL)' –
Спасибо, что исправить сюжет. Проблема в том, что реальные данные будут иметь разную длину и разные точки данных, поэтому я сказал, что хотел наложить графики, а если они были прозрачными слайдами, - не пытаясь включить различные кривые в один и тот же сюжет, я 't хочу, чтобы R попыталась совместить 2 кривые с одной и той же осью x. Это возможно? – PGreen