Thankyou very much arun,I worked perfectly.:D Eliza > Date: Sat, 22 Mar 2014 13:18:21 -0700 > From: smartpink...@yahoo.com > Subject: Re: Latest question > To: r-help@r-project.org > CC: eliza_bo...@hotmail.com > > HI Eliza, > No problem. > > This should be faster: > res2 <- matrix(as.vector( mat1[row.names(mat1) %in% df1$Ry,colnames(mat1) > %in% df1$Rx]),nrow=120, dimnames=list(NULL,colnames(res))) > > identical(res,res2) > #[1] TRUE > A.K. > > > > > > On Saturday, March 22, 2014 4:14 PM, eliza botto <eliza_bo...@hotmail.com> > wrote: > > Thankyou very very much arun. Right now i cant have an acess to PC, as i am > on the move. I will run the code when i get back to home in an hour and if > there would be issue i'll definitely tell you. > > thanks once again > > Eliza > > > > Date: Sat, 22 Mar 2014 13:08:10 -0700 > > From: smartpink...@yahoo.com > > Subject: Re: Latest question > > To: r-help@r-project.org > > CC: eliza_bo...@hotmail.com > > > > Hi Eliza, > > May be this helps: > > > > set.seed(42) > > mat1 <- > > matrix(sample(1:50,43200*720,replace=TRUE),ncol=720,dimnames=list(rep(y,each=120), > > x)) > > df1 <- expand.grid(Ry=Ry,Rx=Rx) > > lst1 <- lapply(seq_len(nrow(df1)),function(i) {x1<- df1[i,]; > > mat1[row.names(mat1) %in% x1[1], colnames(mat1) %in% x1[2],drop=FALSE]}) > > res <- do.call(cbind,lst1) > > dim(res) > > #[1] 120 408 > > colnames(res) <- sapply(lst1,function(x) > > paste(colnames(x),unique(rownames(x)),sep="*")) > > row.names(res) <- NULL > > res[1:3,1:3] > > # 61.75*25.25 61.75*25.75 61.75*26.25 > > #[1,] 28 8 7 > > #[2,] 6 17 44 > > #[3,] 48 21 37 > > > > > > A.K. > > > > > > Dear Arun, > > > > I have a data frame of 43200 obs. of 720 variables (43200 rows and 120 > > columns), say df. Besides df, i also have two column vectors x (1 row and > > 720 columns) and y > > (360 rows and 1 column) which should be located in such a way that "x" > > covers the top of 720 rows of df, so in a way x is the column names of df. > > while "y" should be > > located in every 120th alternating rows of df so that it covers the entire > > rows of df (120*360=43200) which means y[1,]=-89.75 is the name of row 1 of > > df while y[2,] > > =-89.25 is the name of rows number 121st of df (you can assume that > > intermediate rows have the same names. So in way we can say that > > y[1,]=-89.75 is name of row1 to > > row120 of df and y[2,]=-89.25 is name of row 121 to 241 of df), similarly > > y[3,]=88.75 is the name of 241st row of df and so on untill 43200 rows of > > df are covered. > > > > we have two more vector, which will called refrence vectors R1 (1 row * 24 > > columns) and R2 (1 row * 17 columns), which are some of the selected values > > from "x" and > > "y". > > let > > > > Rx<- c(61.75, 62.25 ,62.75, 63.25, 63.75, 64.25, 64.75, 65.25, 65.75, > > 66.25, 66.75, 67.25, 67.75, 68.25, 68.75, 69.25, 69.75, 70.25, 70.75, > > 71.25, 71.75, 72.25, 72.75, > > 73.25) > > > > Ry<-c(25.25, 25.75 ,26.25, 26.75, 27.25, 27.75, 28.25, 28.75, 29.25, 29.75, > > 30.25, 30.75, 31.25, 31.75, 32.25, 32.75, 33.25) > > > > of the "df" i only want to select those columns which have column names > > similar to what is written in Rx and row names similar to Ry. so in the end > > we should have 408 > > column and 120 rows each containg a combination of Rx and Ry in the > > following manner, > > > > 61.75*25.25 61.75*25.75 61.75*26.25 > > 61.75*26.75..........62.25*25.25 62.25*25.75 62.25*26.25 > > 62.25*26.75 > > > > 120 values 120 values 120 values 120 values 120 values > > 120 values 120 values 120 values > > > > > > > dput(x) > > > > c(-179.75, -179.25, -178.75, -178.25, -177.75, -177.25, -176.75, > > -176.25, -175.75, -175.25, -174.75, -174.25, -173.75, -173.25, > > -172.75, -172.25, -171.75, -171.25, -170.75, -170.25, -169.75, > > -169.25, -168.75, -168.25, -167.75, -167.25, -166.75, -166.25, > > -165.75, -165.25, -164.75, -164.25, -163.75, -163.25, -162.75, > > -162.25, -161.75, -161.25, -160.75, -160.25, -159.75, -159.25, > > -158.75, -158.25, -157.75, -157.25, -156.75, -156.25, -155.75, > > -155.25, -154.75, -154.25, -153.75, -153.25, -152.75, -152.25, > > -151.75, -151.25, -150.75, -150.25, -149.75, -149.25, -148.75, > > -148.25, -147.75, -147.25, -146.75, -146.25, -145.75, -145.25, > > -144.75, -144.25, -143.75, -143.25, -142.75, -142.25, -141.75, > > -141.25, -140.75, -140.25, -139.75, -139.25, -138.75, -138.25, > > -137.75, -137.25, -136.75, -136.25, -135.75, -135.25, -134.75, > > -134.25, -133.75, -133.25, -132.75, -132.25, -131.75, -131.25, > > -130.75, -130.25, -129.75, -129.25, -128.75, -128.25, -127.75, > > -127.25, -126.75, -126.25, -125.75, -125.25, -124.75, -124.25, > > -123.75, -123.25, -122.75, -122.25, -121.75, -121.25, -120.75, > > -120.25, -119.75, -119.25, -118.75, -118.25, -117.75, -117.25, > > -116.75, -116.25, -115.75, -115.25, -114.75, -114.25, -113.75, > > -113.25, -112.75, -112.25, -111.75, -111.25, -110.75, -110.25, > > -109.75, -109.25, -108.75, -108.25, -107.75, -107.25, -106.75, > > -106.25, -105.75, -105.25, -104.75, -104.25, -103.75, -103.25, > > -102.75, -102.25, -101.75, -101.25, -100.75, -100.25, -99.75, > > -99.25, -98.75, -98.25, -97.75, -97.25, -96.75, -96.25, -95.75, > > -95.25, -94.75, -94.25, -93.75, -93.25, -92.75, -92.25, -91.75, > > -91.25, -90.75, -90.25, -89.75, -89.25, -88.75, -88.25, -87.75, > > -87.25, -86.75, -86.25, -85.75, -85.25, -84.75, -84.25, -83.75, > > -83.25, -82.75, -82.25, -81.75, -81.25, -80.75, -80.25, -79.75, > > -79.25, -78.75, -78.25, -77.75, -77.25, -76.75, -76.25, -75.75, > > -75.25, -74.75, -74.25, -73.75, -73.25, -72.75, -72.25, -71.75, > > -71.25, -70.75, -70.25, -69.75, -69.25, -68.75, -68.25, -67.75, > > -67.25, -66.75, -66.25, -65.75, -65.25, -64.75, -64.25, -63.75, > > -63.25, -62.75, -62.25, -61.75, -61.25, -60.75, -60.25, -59.75, > > -59.25, -58.75, -58.25, -57.75, -57.25, -56.75, -56.25, -55.75, > > -55.25, -54.75, -54.25, -53.75, -53.25, -52.75, -52.25, -51.75, > > -51.25, -50.75, -50.25, -49.75, -49.25, -48.75, -48.25, -47.75, > > -47.25, -46.75, -46.25, -45.75, -45.25, -44.75, -44.25, -43.75, > > -43.25, -42.75, -42.25, -41.75, -41.25, -40.75, -40.25, -39.75, > > -39.25, -38.75, -38.25, -37.75, -37.25, -36.75, -36.25, -35.75, > > -35.25, -34.75, -34.25, -33.75, -33.25, -32.75, -32.25, -31.75, > > -31.25, -30.75, -30.25, -29.75, -29.25, -28.75, -28.25, -27.75, > > -27.25, -26.75, -26.25, -25.75, -25.25, -24.75, -24.25, -23.75, > > -23.25, -22.75, -22.25, -21.75, -21.25, -20.75, -20.25, -19.75, > > -19.25, -18.75, -18.25, -17.75, -17.25, -16.75, -16.25, -15.75, > > -15.25, -14.75, -14.25, -13.75, -13.25, -12.75, -12.25, -11.75, > > -11.25, -10.75, -10.25, -9.75, -9.25, -8.75, -8.25, -7.75, -7.25, > > -6.75, -6.25, -5.75, -5.25, -4.75, -4.25, -3.75, -3.25, -2.75, > > -2.25, -1.75, -1.25, -0.75, -0.25, 0.25, 0.75, 1.25, 1.75, 2.25, > > 2.75, 3.25, 3.75, 4.25, 4.75, 5.25, 5.75, 6.25, 6.75, 7.25, 7.75, > > 8.25, 8.75, 9.25, 9.75, 10.25, 10.75, 11.25, 11.75, 12.25, 12.75, > > 13.25, 13.75, 14.25, 14.75, 15.25, 15.75, 16.25, 16.75, 17.25, > > 17.75, 18.25, 18.75, 19.25, 19.75, 20.25, 20.75, 21.25, 21.75, > > 22.25, 22.75, 23.25, 23.75, 24.25, 24.75, 25.25, 25.75, 26.25, > > 26.75, 27.25, 27.75, 28.25, 28.75, 29.25, 29.75, 30.25, 30.75, > > 31.25, 31.75, 32.25, 32.75, 33.25, 33.75, 34.25, 34.75, 35.25, > > 35.75, 36.25, 36.75, 37.25, 37.75, 38.25, 38.75, 39.25, 39.75, > > 40.25, 40.75, 41.25, 41.75, 42.25, 42.75, 43.25, 43.75, 44.25, > > 44.75, 45.25, 45.75, 46.25, 46.75, 47.25, 47.75, 48.25, 48.75, > > 49.25, 49.75, 50.25, 50.75, 51.25, 51.75, 52.25, 52.75, 53.25, > > 53.75, 54.25, 54.75, 55.25, 55.75, 56.25, 56.75, 57.25, 57.75, > > 58.25, 58.75, 59.25, 59.75, 60.25, 60.75, 61.25, 61.75, 62.25, > > 62.75, 63.25, 63.75, 64.25, 64.75, 65.25, 65.75, 66.25, 66.75, > > 67.25, 67.75, 68.25, 68.75, 69.25, 69.75, 70.25, 70.75, 71.25, > > 71.75, 72.25, 72.75, 73.25, 73.75, 74.25, 74.75, 75.25, 75.75, > > 76.25, 76.75, 77.25, 77.75, 78.25, 78.75, 79.25, 79.75, 80.25, > > 80.75, 81.25, 81.75, 82.25, 82.75, 83.25, 83.75, 84.25, 84.75, > > 85.25, 85.75, 86.25, 86.75, 87.25, 87.75, 88.25, 88.75, 89.25, > > 89.75, 90.25, 90.75, 91.25, 91.75, 92.25, 92.75, 93.25, 93.75, > > 94.25, 94.75, 95.25, 95.75, 96.25, 96.75, 97.25, 97.75, 98.25, > > 98.75, 99.25, 99.75, 100.25, 100.75, 101.25, 101.75, 102.25, > > 102.75, 103.25, 103.75, 104.25, 104.75, 105.25, 105.75, 106.25, > > 106.75, 107.25, 107.75, 108.25, 108.75, 109.25, 109.75, 110.25, > > 110.75, 111.25, 111.75, 112.25, 112.75, 113.25, 113.75, 114.25, > > 114.75, 115.25, 115.75, 116.25, 116.75, 117.25, 117.75, 118.25, > > 118.75, 119.25, 119.75, 120.25, 120.75, 121.25, 121.75, 122.25, > > 122.75, 123.25, 123.75, 124.25, 124.75, 125.25, 125.75, 126.25, > > 126.75, 127.25, 127.75, 128.25, 128.75, 129.25, 129.75, 130.25, > > 130.75, 131.25, 131.75, 132.25, 132.75, 133.25, 133.75, 134.25, > > 134.75, 135.25, 135.75, 136.25, 136.75, 137.25, 137.75, 138.25, > > 138.75, 139.25, 139.75, 140.25, 140.75, 141.25, 141.75, 142.25, > > 142.75, 143.25, 143.75, 144.25, 144.75, 145.25, 145.75, 146.25, > > 146.75, 147.25, 147.75, 148.25, 148.75, 149.25, 149.75, 150.25, > > 150.75, 151.25, 151.75, 152.25, 152.75, 153.25, 153.75, 154.25, > > 154.75, 155.25, 155.75, 156.25, 156.75, 157.25, 157.75, 158.25, > > 158.75, 159.25, 159.75, 160.25, 160.75, 161.25, 161.75, 162.25, > > 162.75, 163.25, 163.75, 164.25, 164.75, 165.25, 165.75, 166.25, > > 166.75, 167.25, 167.75, 168.25, 168.75, 169.25, 169.75, 170.25, > > 170.75, 171.25, 171.75, 172.25, 172.75, 173.25, 173.75, 174.25, > > 174.75, 175.25, 175.75, 176.25, 176.75, 177.25, 177.75, 178.25, > > 178.75, 179.25, 179.75) > > > > > > > dput(y) > > c(-89.75, -89.25, -88.75, -88.25, -87.75, -87.25, -86.75, -86.25, > > -85.75, -85.25, -84.75, -84.25, -83.75, -83.25, -82.75, -82.25, > > -81.75, -81.25, -80.75, -80.25, -79.75, -79.25, -78.75, -78.25, > > -77.75, -77.25, -76.75, -76.25, -75.75, -75.25, -74.75, -74.25, > > -73.75, -73.25, -72.75, -72.25, -71.75, -71.25, -70.75, -70.25, > > -69.75, -69.25, -68.75, -68.25, -67.75, -67.25, -66.75, -66.25, > > -65.75, -65.25, -64.75, -64.25, -63.75, -63.25, -62.75, -62.25, > > -61.75, -61.25, -60.75, -60.25, -59.75, -59.25, -58.75, -58.25, > > -57.75, -57.25, -56.75, -56.25, -55.75, -55.25, -54.75, -54.25, > > -53.75, -53.25, -52.75, -52.25, -51.75, -51.25, -50.75, -50.25, > > -49.75, -49.25, -48.75, -48.25, -47.75, -47.25, -46.75, -46.25, > > -45.75, -45.25, -44.75, -44.25, -43.75, -43.25, -42.75, -42.25, > > -41.75, -41.25, -40.75, -40.25, -39.75, -39.25, -38.75, -38.25, > > -37.75, -37.25, -36.75, -36.25, -35.75, -35.25, -34.75, -34.25, > > -33.75, -33.25, -32.75, -32.25, -31.75, -31.25, -30.75, -30.25, > > -29.75, -29.25, -28.75, -28.25, -27.75, -27.25, -26.75, -26.25, > > -25.75, -25.25, -24.75, -24.25, -23.75, -23.25, -22.75, -22.25, > > -21.75, -21.25, -20.75, -20.25, -19.75, -19.25, -18.75, -18.25, > > -17.75, -17.25, -16.75, -16.25, -15.75, -15.25, -14.75, -14.25, > > -13.75, -13.25, -12.75, -12.25, -11.75, -11.25, -10.75, -10.25, > > -9.75, -9.25, -8.75, -8.25, -7.75, -7.25, -6.75, -6.25, -5.75, > > -5.25, -4.75, -4.25, -3.75, -3.25, -2.75, -2.25, -1.75, -1.25, > > -0.75, -0.25, 0.25, 0.75, 1.25, 1.75, 2.25, 2.75, 3.25, 3.75, > > 4.25, 4.75, 5.25, 5.75, 6.25, 6.75, 7.25, 7.75, 8.25, 8.75, 9.25, > > 9.75, 10.25, 10.75, 11.25, 11.75, 12.25, 12.75, 13.25, 13.75, > > 14.25, 14.75, 15.25, 15.75, 16.25, 16.75, 17.25, 17.75, 18.25, > > 18.75, 19.25, 19.75, 20.25, 20.75, 21.25, 21.75, 22.25, 22.75, > > 23.25, 23.75, 24.25, 24.75, 25.25, 25.75, 26.25, 26.75, 27.25, > > 27.75, 28.25, 28.75, 29.25, 29.75, 30.25, 30.75, 31.25, 31.75, > > 32.25, 32.75, 33.25, 33.75, 34.25, 34.75, 35.25, 35.75, 36.25, > > 36.75, 37.25, 37.75, 38.25, 38.75, 39.25, 39.75, 40.25, 40.75, > > 41.25, 41.75, 42.25, 42.75, 43.25, 43.75, 44.25, 44.75, 45.25, > > 45.75, 46.25, 46.75, 47.25, 47.75, 48.25, 48.75, 49.25, 49.75, > > 50.25, 50.75, 51.25, 51.75, 52.25, 52.75, 53.25, 53.75, 54.25, > > 54.75, 55.25, 55.75, 56.25, 56.75, 57.25, 57.75, 58.25, 58.75, > > 59.25, 59.75, 60.25, 60.75, 61.25, 61.75, 62.25, 62.75, 63.25, > > 63.75, 64.25, 64.75, 65.25, 65.75, 66.25, 66.75, 67.25, 67.75, > > 68.25, 68.75, 69.25, 69.75, 70.25, 70.75, 71.25, 71.75, 72.25, > > 72.75, 73.25, 73.75, 74.25, 74.75, 75.25, 75.75, 76.25, 76.75, > > 77.25, 77.75, 78.25, 78.75, 79.25, 79.75, 80.25, 80.75, 81.25, > > 81.75, 82.25, 82.75, 83.25, 83.75, 84.25, 84.75, 85.25, 85.75, > > 86.25, 86.75, 87.25, 87.75, 88.25, 88.75, 89.25, 89.75) > > > > > dput(Rx) > > > > c(61.75, 62.25, 62.75, 63.25, 63.75, 64.25, 64.75, 65.25, 65.75, > > 66.25, 66.75, 67.25, 67.75, 68.25, 68.75, 69.25, 69.75, 70.25, > > 70.75, 71.25, 71.75, 72.25, 72.75, 73.25) > > > > > dput(Ry) > > > > c(25.25, 25.75, 26.25, 26.75, 27.25, 27.75, 28.25, 28.75, 29.25, > > 29.75, 30.25, 30.75, 31.25, 31.75, 32.25, 32.75, 33.25) > > > > > > > > > > On Saturday, March 22, 2014 12:45 PM, eliza botto <eliza_bo...@hotmail.com> > > wrote: > > > > > > Dear Arun, > > > > I have attached my latest question with this email. I hope you me out on it. > > Thanks in advance > > > > Eliza [[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.