Hi, Try this: dat1<-read.table(text=" id price distance 1 2 4 1 3 5 2 4 8 2 5 9 3 6 3 3 4 8 ",sep="",header=TRUE) dat2<-split(dat1,dat1$id) lapply(dat2,function(x) cor(x[2],x[3],method="spearman")) A.K.
----- Original Message ----- From: Yi <liuyi.fe...@gmail.com> To: R-help@r-project.org Cc: Sent: Tuesday, August 28, 2012 10:01 PM Subject: [R] Help on calculating spearman rank correlation for a data frame with conditions Dear all, Suppose my data frame is as follows: id price distance 1 2 4 1 3 5 ... 2 4 8 2 5 9 ... n 3 7 n 8 9 I would like to calculate the rank-order correlation between price and distance for each id. cor(price,distance,method = "spearman") calculate a correlation for all. Then I tried to use apply(data,list='id',cor(price , distance , method = "spearman")) to [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.