我有一个看起来像这样的数据框。
a[,2:25]
UT1 UT2 UT3 UT4 UT5 UT6 UT7 UT8 UT9 UT10 UT11 UT12 TR1 TR2 TR3 TR4
3094 9 0 1 37 6 2 8 1 1 6 3 1 3 0 0 1
3095 4 0 0 10 17 6 7 1 5 3 1 12 2 0 0 1
3096 18 0 0 4 6 15 14 0 7 9 3 8 5 2 1 2
3097 11 0 0 7 5 15 10 2 4 7 16 17 7 3 0 0
3098 18 0 11 2 5 11 7 3 2 1 1 0 3 3 1 1
3099 25 0 6 11 17 3 10 1 1 3 9 2 2 1 1 2
3100 1 0 1 27 12 28 27 0 2 11 6 0 1 7 4 6
3101 0 0 1 40 0 17 13 1 0 3 3 0 1 3 3 1
3102 2 0 0 30 1 9 2 1 1 5 0 0 1 3 3 0
3103 3 0 0 11 4 7 5 2 4 0 1 0 5 4 0 0
3104 5 0 0 3 1 10 4 2 3 0 3 0 7 2 1 0
TR5 TR6 TR7 TR8 TR9 TR10 TR11 TR12
3094 1 0 15 3 0 0 42 1
3095 1 0 4 29 0 0 42 0
3096 0 0 3 22 0 0 3 0
3097 1 0 4 14 0 0 2 0
3098 0 0 1 10 0 0 1 0
3099 0 0 4 41 1 0 3 0
3100 0 0 10 21 0 0 17 0
3101 0 0 2 1 1 0 13 3
3102 0 0 2 4 0 0 10 3
3103 1 0 3 4 0 0 12 1
3104 0 0 1 2 0 0 8 0
我的数据的第一列是时候所以我使用
将其分开tiempo<-a$Tiempo
tiempo
[1] 618.6 618.8 619.0 619.2 619.4 619.6 619.8 620.0 620.2 620.4 620.6
为了将每一列绘制为时间函数并且我使用了重塑package
和lattice
。我不确定这是最好的选择,但几乎可以得到我想要的东西。
代码如下所示:
m<-melt(a[,2:25])
f<-m$variable
xyplot(m$value~tiempo | f, panel=function(x,y,...){
panel.xyplot(x,y,...)
panel.lmline(x,y, col=2, lty=2)
})
输出就是这个图
我不明白为什么它会出现这个错误,我希望它们不是NA,我不明白它为什么会出问题。事实上,第一个小组工作得很好。
当我更改panel.lmline(...)部分时会发生这种情况:
xyplot(m$value~tiempo | f, panel=function(x,y,...){
panel.xyplot(tiempo,m$value,...)
panel.lmline(tiempo,m$value, col=2, lty=2)
})
我得到了这个长度错误,但我认为这是因为每个面板使用m的所有数据点时应该只使用11个。
我使用的lm回归函数与绘图分开,这并不会影响我的统计分析,但我试图将所有内容放在一起,如果我不能做到这一点无法绘制数据。我想要关于回归的视觉信息,以便能够在Rsquared太低或甚至不考虑观察时去除异常值。
我希望我已经清楚了。 非常感谢你
使用建议编辑
答案 0 :(得分:0)
你的大部分代码都是正确的。
最好在melt
调用中将time(tiempo)变量用作id变量
这将确保数据的长度匹配。
library(reshape2) #This is faster version of reshape
df.m <- melt(df.matias, id.var="Tiempo") #I stored your data in df.matias
现在我们可以使用融化的数据制作你的情节
library(lattice)
xyplot(value ~ Tiempo | variable, data = df.m,
panel = function(x,y,...) {
panel.xyplot(x,y,...)
panel.lmline(x,y, col = 2, lty =2)
})