hello, i'm new in writting functions in R. I read the R-help manuals but still couldn't get it right. The problem is: I have data on 16 categorical variables for 335 individuals. the data are lines for individuals and columns for variables. I want to calculate the correlation between two variables using a formula given by Agresti for ordinal categorical variables. I have to calcule the value for each pair of variables and save the result in a vector... I wrote the following code X<-as.matrix(X) n=335 for (i in 1:15){ for (j in i+1:16){ Tab<-table(X[,i],X[,j]) u<-1:nrow(Tab) v<-1:ncol(Tab) ml<-margin.table(Tab,1) mc<-margin.table(Tab,2) r1<-u*Tab r2<-sum(v*t(r1)) r3<-sum(u*ml)*(sum(v*mc)/n r5<-sum((v^2)*mc)-((sum(v*mc))^2)/n r4<-sum((u^2)*ml)-((sum(u*ml))^2)/n r<-(r2-r3)/sqrt(r4*r5) r m=(n-1)*r^2 } } The correlation is r.I have a result, but there is a warning regarding r5 about sintax. Plus, it doesn??t perform the loops and I don't know how to save the results in a vector. thanks for any help Assun????o __________________________________________________________
>From: assuncao.senra at portugalmail.com >To: R help <r-help at stat.math.ethz.ch> >Subject: [R] help in building a function >Date: Sat, 11 Sep 2004 14:22:13 +0100 > >hello, >i'm new in writting functions in R. I read the R-help manuals but still >couldn't get it right. >The problem is: >I have data on 16 categorical variables for 335 individuals. the data are >lines for individuals and columns for variables. >I want to calculate the correlation between two variables using a formula >given by Agresti for ordinal categorical variables. >I have to calcule the value for each pair of variables and save the result >in >a vector... >I wrote the following code > >X<-as.matrix(X) > >n=335 >for (i in 1:15){ >for (j in i+1:16){note i+1:16 stands for i+(1:16)>Tab<-table(X[,i],X[,j]) >u<-1:nrow(Tab) >v<-1:ncol(Tab) > >ml<-margin.table(Tab,1) >mc<-margin.table(Tab,2) > >r1<-u*Tab >r2<-sum(v*t(r1))t is useless here, also you did not use t at other place> >r3<-sum(u*ml)*(sum(v*mc)/n > >r5<-sum((v^2)*mc)-((sum(v*mc))^2)/n > >r4<-sum((u^2)*ml)-((sum(u*ml))^2)/n >r<-(r2-r3)/sqrt(r4*r5) > >r >m=(n-1)*r^2 >} >} >The correlation is r.I have a result, but there is a warning regarding r5 >about sintax. >Plus, it doesn´t perform the loops and I don't know how to save the results >in >a vector. >thanks for any help > >Assunção > > > >__________________________________________________________ > >______________________________________________ >R-help at stat.math.ethz.ch mailing list >stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide! >R-project.org/posting-guide.html