From: Gabor Grothendieck <ggrothendieck_at_myway.com>

Date: Thu 01 Jul 2004 - 06:05:15 EST

ret<-cbind(a,b,c,d);

ret

}

ret}

R-help@stat.math.ethz.ch mailing list

https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Thu Jul 01 06:08:49 2004

Date: Thu 01 Jul 2004 - 06:05:15 EST

Without trying to understand your code in detail let me just assume you are trying to create a matrix, ret, whose i,j-th entry is some function, f, of row i of X and row j of X.

In that case this should do it:

apply(X,1,function(x)apply(X,1,function(y)f(x,y)))

Date: Wed, 30 Jun 2004 15:28:47 -0300 (ART)
From: <daniel@sintesys.com.ar>

To: <r-help@stat.math.ethz.ch>

Subject: [R] Developing functions

Hi,

I´m new in R. I´m working with similarity coefficients for clustering
items. I created one function (coef), to calculate the coefficients from
two pairs of vectors and then, as an example, the function
simple_matching,

taking a data.frame(X) and using coef in a for cicle.
It works, but I believe it is a bad way to do so (I believe the for cicle
is not necessary). Somebody can suggest anything better.
Thanks

Daniel Rozengardt

coef<-function(x1,x2){a<-sum(ifelse(x1==1&x2==1,1,0));

b<-sum(ifelse(x1==1&x2==0,1,0)); c<-sum(ifelse(x1==0&x2==1,1,0)); d<-sum(ifelse(x1==0&x2==0,1,0));

ret<-cbind(a,b,c,d);

ret

}

simple_matching<-function(X) {

ret<-matrix(ncol=dim(X)[1],nrow=dim(X)[1]);
diag(ret)<-1;

for (i in 2:length(X[,1])) {

for (j in i:length(X[,1])) { vec<-coef(X[i-1,],X[j,]); result<-(vec[1]+vec[3])/sum(vec); ret[i-1,j]<-result; ret[j,i-1]<-result}};

ret}

R-help@stat.math.ethz.ch mailing list

https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Thu Jul 01 06:08:49 2004

*
This archive was generated by hypermail 2.1.8
: Wed 03 Nov 2004 - 22:54:38 EST
*