Dear all, I have a dataset with hundreds of columns, I am only providing only 12 columns. Is it possible to take the mean of every four (or 12) columns (value601, value602, value603, value604 etc.in this case) and repeat for the hundreds of columns? Thank you. Sincerely, Milu structure(list(value601 = c(10.1738710403442, 3.54112911224365, 12.9192342758179, 3.17447590827942, 11.7332258224487, 7.68282270431519, -7.11564493179321, 0.987620949745178, 13.0476207733154, 6.36939525604248 ), value602 = c(13.0642414093018, 5.53129482269287, 16.0519638061523, 2.88946437835693, 14.9204912185669, 9.42428588867188, -6.80674123764038, -0.614241063594818, 16.7947769165039, 7.9541072845459), value603 c(22.0399188995361, 14.398024559021, 24.9523792266846, 12.0878629684448, 23.6459674835205, 18.3277816772461, -2.54092741012573, 10.5550804138184, 25.1016540527344, 16.2166938781738), value604 = c(27.7165412902832, 20.3255825042725, 30.8430004119873, 16.6856250762939, 29.2485408782959, 24.3775005340576, 6.47758340835571, 15.5897912979126, 30.7387924194336, 22.3637084960938 ), value605 = c(31.6644763946533, 23.4093952178955, 35.1488723754883, 19.7132263183594, 33.3924179077148, 29.5846366882324, 10.2083873748779, 19.3551616668701, 35.3076629638672, 27.4299201965332), value606 c(33.9698333740234, 26.8574161529541, 36.8900833129883, 22.8604583740234, 34.8642921447754, 33.8158760070801, 14.7055835723877, 22.1144580841064, 37.0545425415039, 32.1087913513184), value607 = c(36.0279846191406, 26.9297180175781, 38.2701225280762, 23.2643146514893, 36.7398796081543, 34.1216125488281, 17.1387901306152, 24.0419750213623, 37.8542327880859, 32.7677421569824 ), value608 = c(34.0242347717285, 25.7720966339111, 36.4897193908691, 22.0332260131836, 34.8011703491211, 32.6856842041016, 16.6232261657715, 21.5571365356445, 36.1491546630859, 31.1716938018799), value609 c(27.5402088165283, 21.7590408325195, 30.5214176177979, 18.4252090454102, 29.1156253814697, 26.9878330230713, 12.4962501525879, 17.7259578704834, 30.9099159240723, 25.4832077026367), value610 = c(23.4706859588623, 17.0126209259033, 26.8166942596436, 15.297459602356, 25.1733055114746, 23.5616931915283, 8.86995983123779, 13.5793552398682, 27.5732250213623, 22.1691932678223 ), value611 = c(14.5820417404175, 9.08279132843018, 17.8419170379639, 8.36016654968262, 16.5633754730225, 14.8123331069946, 1.32095837593079, 5.73408317565918, 18.9752082824707, 13.5729999542236), value612 c(9.12979793548584, 2.79943537712097, 11.6504030227661, 2.21584677696228, 10.5404834747314, 7.55471754074097, -5.58141136169434, -0.566209673881531, 12.3264112472534, 6.65576601028442)), .Names = c("value601", "value602", "value603", "value604", "value605", "value606", "value607", "value608", "value609", "value610", "value611", "value612"), row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10"), class = "data.frame") [[alternative HTML version deleted]]
Hi Milu, The following should work for an array x (provided dim(x)[2] is divisible by 4): colMeans(x[,0:(dim(x)[2]/4-1)*4+1]) -Dan On Wed, Nov 9, 2016 at 8:29 AM, Miluji Sb <milujisb at gmail.com> wrote:> Dear all, > > I have a dataset with hundreds of columns, I am only providing only 12 > columns. Is it possible to take the mean of every four (or 12) columns > (value601, value602, value603, value604 etc.in this case) and repeat for > the hundreds of columns? Thank you. > > Sincerely, > > Milu > > structure(list(value601 = c(10.1738710403442, 3.54112911224365, > 12.9192342758179, 3.17447590827942, 11.7332258224487, 7.68282270431519, > -7.11564493179321, 0.987620949745178, 13.0476207733154, 6.36939525604248 > ), value602 = c(13.0642414093018, 5.53129482269287, 16.0519638061523, > 2.88946437835693, 14.9204912185669, 9.42428588867188, -6.80674123764038, > -0.614241063594818, 16.7947769165039, 7.9541072845459), value603 > c(22.0399188995361, > 14.398024559021, 24.9523792266846, 12.0878629684448, 23.6459674835205, > 18.3277816772461, -2.54092741012573, 10.5550804138184, 25.1016540527344, > 16.2166938781738), value604 = c(27.7165412902832, 20.3255825042725, > 30.8430004119873, 16.6856250762939, 29.2485408782959, 24.3775005340576, > 6.47758340835571, 15.5897912979126, 30.7387924194336, 22.3637084960938 > ), value605 = c(31.6644763946533, 23.4093952178955, 35.1488723754883, > 19.7132263183594, 33.3924179077148, 29.5846366882324, 10.2083873748779, > 19.3551616668701, 35.3076629638672, 27.4299201965332), value606 > c(33.9698333740234, > 26.8574161529541, 36.8900833129883, 22.8604583740234, 34.8642921447754, > 33.8158760070801, 14.7055835723877, 22.1144580841064, 37.0545425415039, > 32.1087913513184), value607 = c(36.0279846191406, 26.9297180175781, > 38.2701225280762, 23.2643146514893, 36.7398796081543, 34.1216125488281, > 17.1387901306152, 24.0419750213623, 37.8542327880859, 32.7677421569824 > ), value608 = c(34.0242347717285, 25.7720966339111, 36.4897193908691, > 22.0332260131836, 34.8011703491211, 32.6856842041016, 16.6232261657715, > 21.5571365356445, 36.1491546630859, 31.1716938018799), value609 > c(27.5402088165283, > 21.7590408325195, 30.5214176177979, 18.4252090454102, 29.1156253814697, > 26.9878330230713, 12.4962501525879, 17.7259578704834, 30.9099159240723, > 25.4832077026367), value610 = c(23.4706859588623, 17.0126209259033, > 26.8166942596436, 15.297459602356, 25.1733055114746, 23.5616931915283, > 8.86995983123779, 13.5793552398682, 27.5732250213623, 22.1691932678223 > ), value611 = c(14.5820417404175, 9.08279132843018, 17.8419170379639, > 8.36016654968262, 16.5633754730225, 14.8123331069946, 1.32095837593079, > 5.73408317565918, 18.9752082824707, 13.5729999542236), value612 > c(9.12979793548584, > 2.79943537712097, 11.6504030227661, 2.21584677696228, 10.5404834747314, > 7.55471754074097, -5.58141136169434, -0.566209673881531, 12.3264112472534, > 6.65576601028442)), .Names = c("value601", "value602", "value603", > "value604", "value605", "value606", "value607", "value608", "value609", > "value610", "value611", "value612"), row.names = c("1", "2", > "3", "4", "5", "6", "7", "8", "9", "10"), class = "data.frame") > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. > >-- Dan Dalthorp, PhD USGS Forest and Rangeland Ecosystem Science Center Forest Sciences Lab, Rm 189 3200 SW Jefferson Way Corvallis, OR 97331 ph: 541-750-0953 ddalthorp at usgs.gov [[alternative HTML version deleted]]
Thanks a lot for your quick reply. I made a mistake in the question, I meant to ask every 4 (or 12) rows not columns. Apologies. Thanks again! Sincerely, Milu On Wed, Nov 9, 2016 at 5:45 PM, Dalthorp, Daniel <ddalthorp at usgs.gov> wrote:> Hi Milu, > The following should work for an array x (provided dim(x)[2] is divisible > by 4): > > colMeans(x[,0:(dim(x)[2]/4-1)*4+1]) > > -Dan > > On Wed, Nov 9, 2016 at 8:29 AM, Miluji Sb <milujisb at gmail.com> wrote: > >> Dear all, >> >> I have a dataset with hundreds of columns, I am only providing only 12 >> columns. Is it possible to take the mean of every four (or 12) columns >> (value601, value602, value603, value604 etc.in this case) and repeat for >> the hundreds of columns? Thank you. >> >> Sincerely, >> >> Milu >> >> structure(list(value601 = c(10.1738710403442, 3.54112911224365, >> 12.9192342758179, 3.17447590827942, 11.7332258224487, 7.68282270431519, >> -7.11564493179321, 0.987620949745178, 13.0476207733154, 6.36939525604248 >> ), value602 = c(13.0642414093018, 5.53129482269287, 16.0519638061523, >> 2.88946437835693, 14.9204912185669, 9.42428588867188, -6.80674123764038, >> -0.614241063594818, 16.7947769165039, 7.9541072845459), value603 >> c(22.0399188995361, >> 14.398024559021, 24.9523792266846, 12.0878629684448, 23.6459674835205, >> 18.3277816772461, -2.54092741012573, 10.5550804138184, 25.1016540527344, >> 16.2166938781738), value604 = c(27.7165412902832, 20.3255825042725, >> 30.8430004119873, 16.6856250762939, 29.2485408782959, 24.3775005340576, >> 6.47758340835571, 15.5897912979126, 30.7387924194336, 22.3637084960938 >> ), value605 = c(31.6644763946533, 23.4093952178955, 35.1488723754883, >> 19.7132263183594, 33.3924179077148, 29.5846366882324, 10.2083873748779, >> 19.3551616668701, 35.3076629638672, 27.4299201965332), value606 >> c(33.9698333740234, >> 26.8574161529541, 36.8900833129883, 22.8604583740234, 34.8642921447754, >> 33.8158760070801, 14.7055835723877, 22.1144580841064, 37.0545425415039, >> 32.1087913513184), value607 = c(36.0279846191406, 26.9297180175781, >> 38.2701225280762, 23.2643146514893, 36.7398796081543, 34.1216125488281, >> 17.1387901306152, 24.0419750213623, 37.8542327880859, 32.7677421569824 >> ), value608 = c(34.0242347717285, 25.7720966339111, 36.4897193908691, >> 22.0332260131836, 34.8011703491211, 32.6856842041016, 16.6232261657715, >> 21.5571365356445, 36.1491546630859, 31.1716938018799), value609 >> c(27.5402088165283, >> 21.7590408325195, 30.5214176177979, 18.4252090454102, 29.1156253814697, >> 26.9878330230713, 12.4962501525879, 17.7259578704834, 30.9099159240723, >> 25.4832077026367), value610 = c(23.4706859588623, 17.0126209259033, >> 26.8166942596436, 15.297459602356, 25.1733055114746, 23.5616931915283, >> 8.86995983123779, 13.5793552398682, 27.5732250213623, 22.1691932678223 >> ), value611 = c(14.5820417404175, 9.08279132843018, 17.8419170379639, >> 8.36016654968262, 16.5633754730225, 14.8123331069946, 1.32095837593079, >> 5.73408317565918, 18.9752082824707, 13.5729999542236), value612 >> c(9.12979793548584, >> 2.79943537712097, 11.6504030227661, 2.21584677696228, 10.5404834747314, >> 7.55471754074097, -5.58141136169434, -0.566209673881531, 12.3264112472534, >> 6.65576601028442)), .Names = c("value601", "value602", "value603", >> "value604", "value605", "value606", "value607", "value608", "value609", >> "value610", "value611", "value612"), row.names = c("1", "2", >> "3", "4", "5", "6", "7", "8", "9", "10"), class = "data.frame") >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide http://www.R-project.org/posti >> ng-guide.html >> and provide commented, minimal, self-contained, reproducible code. >> >> > > > -- > Dan Dalthorp, PhD > USGS Forest and Rangeland Ecosystem Science Center > Forest Sciences Lab, Rm 189 > 3200 SW Jefferson Way > Corvallis, OR 97331 > ph: 541-750-0953 > ddalthorp at usgs.gov > >[[alternative HTML version deleted]]
Hi Miluj, Perhaps you didn't get my previous email. Let your data frame be named "msdf": block_col_summ<-function(x,step,block_size,FUN="mean") { dimx<-dim(x) return_value<-NA start<-1 end<-start+block_size-1 block_count<-1 while(end <= dimx[2]) { return_value[block_count]<- do.call(FUN,list(as.matrix(x[,start:end]),na.rm=TRUE)) block_count<-block_count+1 start<-start+step end<-start+block_size-1 } return(return_value) } # use the step and block size that you want block_col_summ(msdf,4,4) Jim On Thu, Nov 10, 2016 at 3:29 AM, Miluji Sb <milujisb at gmail.com> wrote:> Dear all, > > I have a dataset with hundreds of columns, I am only providing only 12 > columns. Is it possible to take the mean of every four (or 12) columns > (value601, value602, value603, value604 etc.in this case) and repeat for > the hundreds of columns? Thank you. > > Sincerely, > > Milu > > structure(list(value601 = c(10.1738710403442, 3.54112911224365, > 12.9192342758179, 3.17447590827942, 11.7332258224487, 7.68282270431519, > -7.11564493179321, 0.987620949745178, 13.0476207733154, 6.36939525604248 > ), value602 = c(13.0642414093018, 5.53129482269287, 16.0519638061523, > 2.88946437835693, 14.9204912185669, 9.42428588867188, -6.80674123764038, > -0.614241063594818, 16.7947769165039, 7.9541072845459), value603 > c(22.0399188995361, > 14.398024559021, 24.9523792266846, 12.0878629684448, 23.6459674835205, > 18.3277816772461, -2.54092741012573, 10.5550804138184, 25.1016540527344, > 16.2166938781738), value604 = c(27.7165412902832, 20.3255825042725, > 30.8430004119873, 16.6856250762939, 29.2485408782959, 24.3775005340576, > 6.47758340835571, 15.5897912979126, 30.7387924194336, 22.3637084960938 > ), value605 = c(31.6644763946533, 23.4093952178955, 35.1488723754883, > 19.7132263183594, 33.3924179077148, 29.5846366882324, 10.2083873748779, > 19.3551616668701, 35.3076629638672, 27.4299201965332), value606 > c(33.9698333740234, > 26.8574161529541, 36.8900833129883, 22.8604583740234, 34.8642921447754, > 33.8158760070801, 14.7055835723877, 22.1144580841064, 37.0545425415039, > 32.1087913513184), value607 = c(36.0279846191406, 26.9297180175781, > 38.2701225280762, 23.2643146514893, 36.7398796081543, 34.1216125488281, > 17.1387901306152, 24.0419750213623, 37.8542327880859, 32.7677421569824 > ), value608 = c(34.0242347717285, 25.7720966339111, 36.4897193908691, > 22.0332260131836, 34.8011703491211, 32.6856842041016, 16.6232261657715, > 21.5571365356445, 36.1491546630859, 31.1716938018799), value609 > c(27.5402088165283, > 21.7590408325195, 30.5214176177979, 18.4252090454102, 29.1156253814697, > 26.9878330230713, 12.4962501525879, 17.7259578704834, 30.9099159240723, > 25.4832077026367), value610 = c(23.4706859588623, 17.0126209259033, > 26.8166942596436, 15.297459602356, 25.1733055114746, 23.5616931915283, > 8.86995983123779, 13.5793552398682, 27.5732250213623, 22.1691932678223 > ), value611 = c(14.5820417404175, 9.08279132843018, 17.8419170379639, > 8.36016654968262, 16.5633754730225, 14.8123331069946, 1.32095837593079, > 5.73408317565918, 18.9752082824707, 13.5729999542236), value612 > c(9.12979793548584, > 2.79943537712097, 11.6504030227661, 2.21584677696228, 10.5404834747314, > 7.55471754074097, -5.58141136169434, -0.566209673881531, 12.3264112472534, > 6.65576601028442)), .Names = c("value601", "value602", "value603", > "value604", "value605", "value606", "value607", "value608", "value609", > "value610", "value611", "value612"), row.names = c("1", "2", > "3", "4", "5", "6", "7", "8", "9", "10"), class = "data.frame") > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.