我正在处理我创建的数据框,并希望将其扩展为包含一个低合适的数据框。我已经能够将lowess曲线添加到我的数据图以及lm拟合但我无法弄清楚如何将lowess值添加到我的数据框。 请原谅我的代码的丑陋,因为我通过蛮力做所有事情(即赞赏简化/效率的建议。)我道歉,因为我不允许发布图像。我有一个lm拟合的散点图,产生一个.7897的R ^ 2和一个低值曲线,它很好地复制了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,]
这给出了以下内容:
Date MaxLoad TMAX OnPeakTotal Lowess
1 2008-06-02 2880 214.0 43307 2880
2 2008-06-03 2860 197.0 43166 2860
3 2008-06-04 2787 172.5 42088 2787
4 2008-06-05 2902 216.5 43333 2902
5 2008-06-06 3078 275.0 45325 3078
Lowess值与MaxLoad
相同如果我分开运行低位:
Lowess = (lowess(SummerOPM5.df$TMAX,SummerOPM5.df$MaxLoad))
Lowess$y[1:5]
我明白了:
[1] 2522.221 2569.523 2603.625 2622.795 2622.795
矢量按排名顺序排列。 。 我不确定它是否保留了序列,否则我不确定如何将其与我数据框的相应行相符。
建议?