On Dec 13, 2010, at 23:23 , Justin Fincher wrote: > I apologize for the lack of example. I was trying not to be too long > winded. Below is the first portion of my function that is causing the > error. (I'm including both calls to cor(), though it quits after the first > throws an error). I do not believe he has redefined cor() as he is a novice > user and we tried this after starting a fresh session. And I will look into > upgrading. I realize it is a little out of date since it is the version in > the repository for my distribution and not the latest-and-greatest from R. > I just didn't realize a change like that would be made that would > (seemingly to me) reduce functionality. Thank you again for your help.
Well, let me put it this way: Once you realize what you are doing, you will appreciate that R is not letting you do that anymore... > > - Fincher > > # As they don't change, hard code gene density values > gene_densities = > data.frame(chrom=c("chr1","chr2","chr3","chr4","chr5","chr6","chr7", > > "chr8","chr9","chr10","chr11","chr12","chr13", > > "chr14","chr15","chr16","chr17","chr18","chr19", > > "chr20","chr21","chr22","chrX","chrY"), > > avg_density=c(10.19,6.457,6.71,4.917,6.083,7.491,7.453, > 5.939,7.27,7.132,11.38,9.429,3.757, > 7.607,8.455,11.81,17.84,4.649,26.52, > 11.19,6.51,11.28,7.535,2.931)) > > acc_averages = c() > > # subset out relevant data > accessibility_data = subset(accessibility_data, > accessibility_data$V9==";color=000000") > > # calculate mean accessibility value for each chromosome > for(i in seq(1,22)){ > sub = paste("chr",i,sep="") > temp = subset(accessibility_data,accessibility_data$V1==sub) > acc_averages = rbind(acc_averages,c(sub,as.double(mean(temp$V6)))) > } > temp = subset(accessibility_data,accessibility_data$V1=="chrX") > acc_averages = rbind(acc_averages,c("chrX",as.double(mean(temp$V6)))) This and the similar line 3 lines earlier is the culprit. The c() construct creates a character vector because its 1st argument is character. Hence, acc_averages is a character matrix. Now, are you _sure_ you know what happens if you correlate something with the character vector acc_averages[,2]? It may have given you the right thing for Pearson correlations, but it certainly did not for rank correlations pre 2.11.0, leading to a "non-bug report" and the subsequent check for numeric data. What happened then was that ranks were based on the _alphabetical_ ordering of data! I'm fairly confident that you'd really want to do the whole thing with a suitable aggregate() call, but for now, how about just keeping the labels and the values in two separate vectors? -- Peter Dalgaard Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Email: pd....@cbs.dk Priv: pda...@gmail.com ______________________________________________ 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.