# [R] R looping help

rishard orc15 at uclive.ac.nz
Thu May 16 12:17:53 CEST 2013

```Hey I'm not really sure what I should put on here, but I am having trouble
with my R code.  I am trying to get the p-values, R^2s etc for a number of
different groups of variables that are all in one dataset.

This is the code:

#Stand counter
st<-1
#Collections
stands<-numeric(67)
slopes<-numeric(67)
intercepts<-numeric(67)
mses<-numeric(67)
rsquares<-numeric(67)
pValues<-numeric(67)
#Start lists for X and Y values within each stand
xi<-numeric(0)
yi<-numeric(0)
#Set the first element to the starting X and Y values
xi=X
yi=Y
#Start looping working through your data, record by record
for (i in 2:length(X)) {
#If you are in the same stand as on the last record, continue to
#collect X and Y values
if(Stand[i]==Stand[i-1]) {
xi=cbind(xi,X[i])
yi=cbind(yi,Y[i])
} else {
#If a new stand is encountered make your linear model and
#collect statistics
model<-lm(yi~xi)
stands[st]<-Stand[i-1]
intercepts[st]<-model\$coefficients
slopes[st]<-model\$coefficients
mses[st]<-sum(resid(model)^2)/(length(xi)-2)
ssr<-var(yi)*(length(xi)-1)-sum(resid(model)^2)
rsquares[st]<-ssr/(var(yi)*(length(xi)-1))
fRatio<-ssr/mses[st]
pValues[st]<-1-pf(fRatio,1,length(xi)-2)
#Increment the stand number, zero the within stand collections,
#and start again
st<-st+1
xi<-numeric(0)
yi<-numeric(0)
xi=X[i]
yi=Y[i]
}
}
standEstimates<-data.frame(standID=stands,intercept=intercepts,slop=slopes,mse=mses,rSquare=rsquares,pValue=pValues)

The standEstimate outputs look like this:

standID	intercept	slop	mse	rSquare	pValue
1	6833	319.2470	NA	0	NA	NA
2	756   	708.7470	NA	0	NA	NA
3	795	        508.2290	NA	0	NA	NA
4	1249	503.1460	NA	0	NA	NA
5	1331	703.0620	NA	0	NA	NA
6	1417	747.7620	NA	0	NA	NA
7	4715	549.3400	NA	0	NA	NA
8	4850	603.9940	NA	0	NA	NA
9	2105	573.3270	NA	0	NA	NA
Etc etc

and I get these warnings:

1: In rsquares[st] <- ssr/(var(yi) * (length(xi) - 1)) :
number of items to replace is not a multiple of replacement length
2: In pValues[st] <- 1 - pf(fRatio, 1, length(xi) - 2) :
number of items to replace is not a multiple of replacement length
3: In rsquares[st] <- ssr/(var(yi) * (length(xi) - 1)) :
number of items to replace is not a multiple of replacement length
4: In pValues[st] <- 1 - pf(fRatio, 1, length(xi) - 2) :
number of items to replace is not a multiple of replacement length
5: In rsquares[st] <- ssr/(var(yi) * (length(xi) - 1)) :
number of items to replace is not a multiple of replacement length
6: In pValues[st] <- 1 - pf(fRatio, 1, length(xi) - 2) :
number of items to replace is not a multiple of replacement length
7: In rsquares[st] <- ssr/(var(yi) * (length(xi) - 1)) :
number of items to replace is not a multiple of replacement length
8: In pValues[st] <- 1 - pf(fRatio, 1, length(xi) - 2) :
number of items to replace is not a multiple of replacement length
9: In rsquares[st] <- ssr/(var(yi) * (length(xi) - 1)) :
number of items to replace is not a multiple of replacement length
10: In pValues[st] <- 1 - pf(fRatio, 1, length(xi) - 2) :
number of items to replace is not a multiple of replacement length
11: In rsquares[st] <- ssr/(var(yi) * (length(xi) - 1)) :
number of items to replace is not a multiple of replacement length
12: In pValues[st] <- 1 - pf(fRatio, 1, length(xi) - 2) :
number of items to replace is not a multiple of replacement length
13: In rsquares[st] <- ssr/(var(yi) * (length(xi) - 1)) :
number of items to replace is not a multiple of replacement length
14: In pValues[st] <- 1 - pf(fRatio, 1, length(xi) - 2) :
etc etc

Sorry if I haven't set this post out right, or haven't provided enough
information.  But can anyone see why it is not giving me any returns for R^2
etc?

--
View this message in context: http://r.789695.n4.nabble.com/R-looping-help-tp4667180.html
Sent from the R help mailing list archive at Nabble.com.

```