I have a large amount of data read in from over 140 excel files in the format of x. r1 to r5 are repeat measures for a given Wavelength and ANWC_NO.

I need to rearrange x into 3 columns, ANWC_NO,Wavelegth, value ie

ANWC_NO    Wavelength     r1
ANWC_NO    Wavelength,    r2
ANWC_NO    Wavelength     r3


etc...

I can rearrange the data using the code below, however all the columns end up as strings, not numeric values. I cannot then summaries the data, ( whcih I need to do in bins of wavelanght for each ANWC_NO)


> x
 Wavelength       r1       r2       r3       r4       r5 ANWC_NO
1        300 0.003126 0.005382 0.001094 0.012529 0.005632   39239
2        302 0.004924 0.006280 0.002366 0.015234 0.006204   39239
3        304 0.004769 0.005960 0.002759 0.015856 0.006804   39239
4        306 0.005181 0.006717 0.004033 0.017380 0.007675   39239
5        308 0.005872 0.008083 0.004429 0.018334 0.008504   39239
6        310 0.007164 0.010775 0.005949 0.019952 0.009594   39239
> y =NULL
> rows<-nrow(x)
> for(r in 1:rows){
+ for(c in 2:6){
+ row<-c(c(x[r,7]),as.numeric(c(x[r,1])),as.numeric(c(x[r,c])))
+ y<-rbind(y,row)
+ }}
> colnames(y)<-c("ANWC_NO","WAVELENGTH","VALUE")
> head (y)
   ANWC_NO WAVELENGTH VALUE
row "39239" "300"      "0.003126"
row "39239" "300"      "0.005382"
row "39239" "300"      "0.001094"
row "39239" "300"      "0.012529"
row "39239" "300"      "0.005632"
row "39239" "302"      "0.004924"

> mean(y$VALUE)
Error in y$VALUE : $ operator is invalid for atomic vectors

how do I get the data arranged in three columns but maintaining WavelENGTH and the values as numeric in a data.frame?
Many thanks

Nevil Amos
Monash University

______________________________________________
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.

Reply via email to