# [R] Arrays of functions or results of functions.

Gary Mallard gary.mallard at nist.gov
Mon Mar 27 19:03:56 CEST 2006

```The general problem I am trying to solve is to determine if a series of
subsets of data can be described with a single regression slope.  This
involves fitting the data to each subset, calculating a joint slope
followed by F tests to show that the variances are equal the final slope is
valid.
The data for is characterized by a parameter PC (for the 4 - in this case)
sets and a dependent variable RI and an independent variable ROH.
The data are contained in a variable "joint".
The joint has been attached and has RI, ROH and PC for each element.
The following gives the initial results:
Mline<-lm(RI[PC==1]~ROH[PC==1])
Eline<-lm(RI[PC==2]~ROH[PC==2])
Iline<-lm(RI[PC==3]~ROH[PC==3])
Pline<-lm(RI[PC==4]~ROH[PC==4])

joint_reduced <- joint;
for(i in 1:4) {
joint_reduced\$RI[joint_reduced\$PC==i]<-joint\$RI[joint\$PC==i]-mean(joint\$RI[joint\$PC==1]}
AllLine<-lm(joint_reduced\$RI~joint_reduced\$ROH);

Now the statistics from AllLine can be compared with each of the individual
statistics.

NOW THE QUESTION:
From a lot of point of view it would be useful to have a parameter
generated by
for (i in 1:4){ 	Xline[i]=lm(RI[PC==i]~ROH[PC==i])}
And now all of the work of comparison can be done with calls to Xline[i]
rather than having to  work individually with Mline, Eline, etc.

This appears to be impossible.  The constructor for Xline[i] is not
automatic (as it is for Mline, etc) noted above.  I cannot determine how to
construct the Xline[i] object so that this kind of process can be
generalized.  Is it possible?  Is there another way to set us such tests of
multiple line linearity that is already in a package?

Comments or pointers would be appreciated.
Gary

```