Hi, Try this: #dat1 is dataset indx<-apply(dat1,2,function(x) head(which(!is.na(x)),2)) res<-as.data.frame(sapply(seq_len(ncol(indx)),function(i) dat2[indx[,i],i])) colnames(res)<- colnames(dat1) res # 1B 2B 4B 1A 2A 4A 5B 5A C31A C31B C34A C34B C35A #1 2.518 2.357 1.499 3.647 1.890 2.249 2.896 2.175 0.452 1.177 0.344 0.612 1.722 #2 2.796 2.759 1.032 3.763 1.182 2.291 2.417 2.597 1.033 0.831 0.351 0.509 1.102 # C35B C37A C37B C36A C36B C32A C32B C33A C33B C39B #1 2.482 0.996 0.898 0.179 1.148 2.637 2.917 1.440 1.487 1.291 #2 1.061 1.243 1.078 1.167 1.209 2.770 2.325 2.006 1.886 0.655
#or just res2<-sapply(dat1,function(x) head(x[!is.na(x)],2)) res2 # 1B 2B 4B 1A 2A 4A 5B 5A C31A C31B C34A C34B #[1,] 2.518 2.357 1.499 3.647 1.890 2.249 2.896 2.175 0.452 1.177 0.344 0.612 #[2,] 2.796 2.759 1.032 3.763 1.182 2.291 2.417 2.597 1.033 0.831 0.351 0.509 # C35A C35B C37A C37B C36A C36B C32A C32B C33A C33B C39B #[1,] 1.722 2.482 0.996 0.898 0.179 1.148 2.637 2.917 1.440 1.487 1.291 #[2,] 1.102 1.061 1.243 1.078 1.167 1.209 2.770 2.325 2.006 1.886 0.655 A.K. ----- Original Message ----- From: catalin roibu <catalinro...@gmail.com> To: r-help@r-project.org Cc: Sent: Saturday, April 6, 2013 10:28 AM Subject: [R] arrange data Hello all! I have a problem to arrange data in another form. My initial data is like this: 'data.frame': 421 obs. of 58 variables: $ 01A: num NA NA NA NA NA NA NA NA NA NA ... $ 01B: num NA NA NA NA NA NA NA NA NA NA ... $ 03A: num NA NA NA NA NA NA NA NA NA NA ... $ 03B: num NA NA NA NA NA NA NA NA NA NA ... $ 05A: num NA NA NA NA NA NA NA NA NA NA ... $ 05B: num NA NA NA NA NA NA NA 3.64 2.48 1.87 ... $ 07A: num NA NA NA NA NA NA NA NA NA NA ... $ 07B: num NA NA NA NA NA NA NA NA NA NA ... $ 10A: num NA NA NA NA NA NA NA NA NA NA ... $ 10B: num NA NA NA NA NA NA NA NA NA NA ... $ 12A: num NA NA NA NA NA NA NA NA NA NA ... $ 12B: num NA NA NA NA NA NA NA NA NA NA ... $ 14A: num NA NA NA NA NA NA NA NA NA NA ... $ 14B: num NA NA NA NA NA NA NA NA NA NA ... $ 16A: num NA NA NA NA NA NA NA NA NA NA ... $ 16B: num NA NA NA NA NA NA NA NA NA NA ... $ 17A: num NA NA NA NA NA NA NA NA NA NA ... $ 17B: num NA NA NA NA NA NA NA NA NA NA ... $ 20A: num NA NA NA NA NA NA NA NA NA NA ... $ 20B: num 0.85 0.77 0.62 0.86 0.97 0.6 0.33 0.58 0.54 0.88 ... $ 22A: num NA NA NA NA NA NA NA NA NA NA ... $ 22B: num NA NA NA NA NA NA NA NA NA NA ... $ 23A: num NA NA NA NA NA NA NA NA NA NA ... $ 23B: num NA NA NA NA NA NA NA NA NA NA ... $ 25A: num NA NA NA NA NA NA NA NA NA NA ... $ 25B: num NA NA NA NA NA NA NA NA NA NA ... $ 28A: num NA NA NA NA NA NA NA NA NA NA ... $ 28B: num NA NA NA NA NA NA NA NA NA NA ... $ 31A: num NA NA NA NA NA NA NA NA NA NA ... $ 31B: num NA NA NA NA NA NA NA NA NA NA ... $ 32A: num NA NA NA NA NA NA NA NA NA 1.19 ... $ 32B: num NA NA NA NA NA NA NA NA NA NA ... $ 34A: num NA NA NA NA NA NA NA NA NA NA ... $ 34B: num NA NA NA NA NA NA NA NA NA NA ... $ 36A: num NA NA NA NA NA NA NA NA NA NA ... $ 36B: num NA NA NA NA NA NA NA NA NA NA ... $ 42A: num NA NA NA NA NA NA NA NA NA NA ... $ 42B: num NA NA NA NA NA NA NA NA NA NA ... $ 44A: num NA NA NA NA NA NA NA NA NA NA ... $ 44B: num NA NA NA NA NA NA NA NA NA NA ... $ 47A: num NA NA NA NA NA NA NA NA NA NA ... $ 47B: num NA NA NA NA NA NA NA NA NA NA ... $ 48A: num NA NA NA NA NA NA NA NA NA NA ... $ 48B: num NA NA NA NA NA NA NA NA NA NA ... $ 50A: num NA NA NA NA NA NA NA NA NA NA ... $ 50B: num NA NA NA NA NA NA NA NA NA NA ... $ 52A: num NA NA NA NA NA NA NA NA NA NA ... $ 52B: num NA NA NA NA NA NA NA NA NA NA ... $ 55A: num NA NA NA NA NA NA NA NA NA NA ... $ 55B: num NA NA NA NA NA NA NA NA NA NA ... $ 56A: num NA NA NA NA NA NA NA NA NA NA ... $ 56B: num NA NA NA NA NA NA NA NA NA NA ... $ 59A: num NA NA NA NA NA NA NA NA NA NA ... $ 59B: num NA NA NA NA NA NA NA NA NA NA ... $ 40A: num NA NA NA NA 2.93 3.38 3.19 3.62 2.55 1.69 ... $ 40B: num NA NA NA NA NA NA NA NA NA NA ... $ 39A: num NA NA NA NA NA NA NA NA NA NA ... $ 39B: num NA NA NA NA NA NA NA NA NA NA ... I want to arrange them like this> row.names 01A 02A...... 1 first value first value 2 second value second value 3 4 .. max(nrow) Thank you very much! -- --- Catalin-Constantin ROIBU Lecturer PhD, Forestry engineer Forestry Faculty of Suceava Str. Universitatii no. 13, Suceava, 720229, Romania office phone +4 0230 52 29 78, ext. 531 mobile phone +4 0745 53 18 01 +4 0766 71 76 58 FAX: +4 0230 52 16 64 silvic.usv.ro [[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.