lowss函数与plyr

lowss函数与plyr,r,plyr,curve-fitting,R,Plyr,Curve Fitting,我正在使用我创建的数据框,并希望将其扩展为包含lowess fit。我已经能够将Lowss曲线与lm拟合一起添加到数据的绘图中,但我不知道如何将Lowss值添加到数据帧中。 请原谅我的代码的丑陋,因为我用暴力做任何事情(即,简化/效率的建议非常感谢)。我很抱歉,因为我不允许发布图片。我有一个带有lm拟合的散点图,其R^2为.7897,lowess曲线很好地复制了lm拟合的qqplot。当我获得“10”的声誉时,我会将其发布,以供启发/便于可视化: ##Read in Data OPM.df &l

我正在使用我创建的数据框,并希望将其扩展为包含lowess fit。我已经能够将Lowss曲线与lm拟合一起添加到数据的绘图中,但我不知道如何将Lowss值添加到数据帧中。 请原谅我的代码的丑陋,因为我用暴力做任何事情(即,简化/效率的建议非常感谢)。我很抱歉,因为我不允许发布图片。我有一个带有lm拟合的散点图,其R^2为.7897,lowess曲线很好地复制了lm拟合的qqplot。当我获得“10”的声誉时,我会将其发布,以供启发/便于可视化:

##Read in Data
OPM.df <- read.csv("On Peak Mod TMAX.csv", header = TRUE)
 ## Data frame 2008-2012
OPM5.df <- OPM.df[4606:6140,]
##Verify headings
OPM5.df[1,]
SummerOPM5.df <- OPM5.df[month(OPM5.df$Date) >= 6 & month(OPM5.df$Date) <= 9, ]
##@Fit Linear Regression to Data
fitsummerX <- lm(SummerOPM5.df$MaxLoad~SummerOPM5.df$TMAX)
summary(fitsummerX)
##Plot data 
windows()
plot(SummerOPM5.df$TMAX, SummerOPM5.df$MaxLoad, main="Linear Regression Adjusted R-     squared: 0.7897",)
## Add fit lines
abline(fitsummerX, col="red") # regression line (y~x) 
lines(lowess(SummerOPM5.df$TMAX,SummerOPM5.df$MaxLoad), col="blue") # lowess line (x,y)

## plyr augmentation of df
SummerOPM5.df <- ddply(SummerOPM5.df, .(Date, MaxLoad, TMAX, OnPeakTotal), transform,
    Lowess = (lowess(TMAX,MaxLoad)$y))
##Verify headings and values
SummerOPM5.df [1:5,]
Lowess值与MaxLoad值相同

如果我单独运行lowess:

Lowess = (lowess(SummerOPM5.df$TMAX,SummerOPM5.df$MaxLoad))

Lowess$y[1:5]
我明白了:

[1] 2522.221 2569.523 2603.625 2622.795 2622.795
其中向量是按秩排序的。 . 我不确定它是否保留了序列,因此我不确定如何将其与数据帧的相应行相匹配


建议?

LinkedIn上的一位用户给了我解决方案:我想我已经找到了问题的根源。给出lowess命令的结果,以便对x坐标进行排序。由于您的数据帧中已经有一个Lowss变量,下面的行应该将Lowss对象中的值保存到正确的行中:
SummerOPM5.df$lowss[order(SummerOPM5.df$TMAX)]我还认为我可以使用predict type函数来完成这项工作,即:
y.predict
[1] 2522.221 2569.523 2603.625 2622.795 2622.795