e.rapsomaniki at mail.cryst.bbk.ac.uk
2006-May-17 16:52 UTC
[R] for loops and counter interpolation
Hi I'm sorry about the triviality of my problem. I have a vector (v) of three columns (logA, logB, id). I want to compute (and plot) the correlation between logA and logB for different thresholds of id (e.g. >30, etc). So I tried: for(i in 1:100){ points(cor(v$logA[v$id>i], v$logB[v$id>i], use="complete.obs"), i)) } (i created a plot object already) but it comes with the error: x is empty, ie it doesn't interpolate the value of i in the for loop into the vector selection. Does anyone know if there's any better way of doing this? Many Thanks Eleni Rapsomaniki Birkbeck College, UK
Hello, I think you are trying to combine too many things into one. for(i in 1:100){> points(cor(v$logA[v$id>i], v$logB[v$id>i], use="complete.obs"), i)) > } > (i created a plot object already)For points() you need to have x and y, but you are giving the output of cor() This will plot your data and print the correlations on the plot (lathough maybe not in the best place): for(i in 1:100){ points(v$logA[v$id>i], v$logB[v$id>i], pch=i) text(0, i, cor(v$logA[v$id>i], v$logB[v$id>i], use="complete.obs")) } Hopefully that gives you an idea of how to get the output you actually want. Sarah -- Sarah Goslee [[alternative HTML version deleted]]
Apparently Analagous Threads
- R interface to C API Rf_logspace_{add,sub}?
- Kolmogorov-Smirnov test and the plot of max distance between two ecdf curves
- Finding points with equal probability between normal distributions
- help with predict and plotting confidence intervals
- Multiple imputation using mice with "mean"