Muhuri, Pradip (SAMHSA/CBHSQ)
2014-Nov-30 20:48 UTC
[R] R dplyr solution vs. Base R solution for the slect column total
Hi Boris, That gives me the total for each of the 6 columns of the data frame. I want the column sum just for the last column. Thanks, Pradip Muhuri -----Original Message----- From: Boris Steipe [mailto:boris.steipe at utoronto.ca] Sent: Sunday, November 30, 2014 12:50 PM To: Muhuri, Pradip (SAMHSA/CBHSQ) Cc: r-help at r-project.org Subject: Re: [R] R dplyr solution vs. Base R solution for the slect column total try: sum(test$count) B. On Nov 30, 2014, at 12:01 PM, Muhuri, Pradip (SAMHSA/CBHSQ) <Pradip.Muhuri at samhsa.hhs.gov> wrote:> Hello, > > I am looking for a dplyr or base R solution for the column total - JUST FOR THE LAST COLUMN in the example below. The following code works, giving me the total for each column - This is not exactly what I want. > rbind(test, colSums(test)) > > I only want the total for the very last column. I am struggling with > this part of the code: rbind(test, c("Total", colSums(test, ...))) I have searched for a solution on Stack Oveflow. I found some mutate() code for the cumsum but no luck for the select column total. Is there a dplyr solution for the select column total? > > Any hints will be appreciated. > > Thanks, > > Pradip Muhuri > > > ####### The following is from the console - the R script with reproducible example is also appended. > > > mrjflag cocflag inhflag halflag oidflag count > 1 0 0 0 0 0 256 > 2 0 0 0 1 1 256 > 3 0 0 1 0 1 256 > 4 0 0 1 1 1 256 > 5 0 1 0 0 1 256 > 6 0 1 0 1 1 256 > 7 0 1 1 0 1 256 > 8 0 1 1 1 1 256 > 9 1 0 0 0 1 256 > 10 1 0 0 1 1 256 > 11 1 0 1 0 1 256 > 12 1 0 1 1 1 256 > 13 1 1 0 0 1 256 > 14 1 1 0 1 1 256 > 15 1 1 1 0 1 256 > 16 1 1 1 1 1 256 > 17 8 8 8 8 15 4096 > > > > ####################### below is the reproducible example > ######################## > library(dplyr) > # generate data > dlist <- rep( list( 0:1 ), 4 ) > data <- do.call(expand.grid, drbind) > data$id <- 1:nrow(data) > names(data) <- c('mrjflag', 'cocflag', 'inhflag', 'halflag') > > > # mutate a column and then sumamrize > test <- data %>% > mutate(oidflag= ifelse(mrjflag==1 | cocflag==1 | inhflag==1 | halflag==1, 1, 0)) %>% > group_by(mrjflag,cocflag, inhflag, halflag, oidflag) %>% > summarise(count=n()) %>% > arrange(mrjflag,cocflag, inhflag, halflag, oidflag) > > > # This works, giving me the total for each column - This is not what I exactly want. > rbind(test, colSums(test)) > > # I only want the total for the very last column rbind(test, > c("Total", colSums(test, ...))) > > Pradip K. Muhuri, PhD > SAMHSA/CBHSQ > 1 Choke Cherry Road, Room 2-1071 > Rockville, MD 20857 > Tel: 240-276-1070 > Fax: 240-276-1260 > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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.
Boris Steipe
2014-Nov-30 22:50 UTC
[R] R dplyr solution vs. Base R solution for the slect column total
No it doesn't ... consider: test <- data.frame(first=c(1,2), second=c(3,4)) test first second 1 1 3 2 2 4 sum(test$second) [1] 7 On Nov 30, 2014, at 3:48 PM, Muhuri, Pradip (SAMHSA/CBHSQ) <Pradip.Muhuri at samhsa.hhs.gov> wrote:> Hi Boris, > > That gives me the total for each of the 6 columns of the data frame. I want the column sum just for the last column. > > Thanks, > > Pradip Muhuri > > > > -----Original Message----- > From: Boris Steipe [mailto:boris.steipe at utoronto.ca] > Sent: Sunday, November 30, 2014 12:50 PM > To: Muhuri, Pradip (SAMHSA/CBHSQ) > Cc: r-help at r-project.org > Subject: Re: [R] R dplyr solution vs. Base R solution for the slect column total > > try: > > sum(test$count) > > > B. > > > On Nov 30, 2014, at 12:01 PM, Muhuri, Pradip (SAMHSA/CBHSQ) <Pradip.Muhuri at samhsa.hhs.gov> wrote: > >> Hello, >> >> I am looking for a dplyr or base R solution for the column total - JUST FOR THE LAST COLUMN in the example below. The following code works, giving me the total for each column - This is not exactly what I want. >> rbind(test, colSums(test)) >> >> I only want the total for the very last column. I am struggling with >> this part of the code: rbind(test, c("Total", colSums(test, ...))) I have searched for a solution on Stack Oveflow. I found some mutate() code for the cumsum but no luck for the select column total. Is there a dplyr solution for the select column total? >> >> Any hints will be appreciated. >> >> Thanks, >> >> Pradip Muhuri >> >> >> ####### The following is from the console - the R script with reproducible example is also appended. >> >> >> mrjflag cocflag inhflag halflag oidflag count >> 1 0 0 0 0 0 256 >> 2 0 0 0 1 1 256 >> 3 0 0 1 0 1 256 >> 4 0 0 1 1 1 256 >> 5 0 1 0 0 1 256 >> 6 0 1 0 1 1 256 >> 7 0 1 1 0 1 256 >> 8 0 1 1 1 1 256 >> 9 1 0 0 0 1 256 >> 10 1 0 0 1 1 256 >> 11 1 0 1 0 1 256 >> 12 1 0 1 1 1 256 >> 13 1 1 0 0 1 256 >> 14 1 1 0 1 1 256 >> 15 1 1 1 0 1 256 >> 16 1 1 1 1 1 256 >> 17 8 8 8 8 15 4096 >> >> >> >> ####################### below is the reproducible example >> ######################## >> library(dplyr) >> # generate data >> dlist <- rep( list( 0:1 ), 4 ) >> data <- do.call(expand.grid, drbind) >> data$id <- 1:nrow(data) >> names(data) <- c('mrjflag', 'cocflag', 'inhflag', 'halflag') >> >> >> # mutate a column and then sumamrize >> test <- data %>% >> mutate(oidflag= ifelse(mrjflag==1 | cocflag==1 | inhflag==1 | halflag==1, 1, 0)) %>% >> group_by(mrjflag,cocflag, inhflag, halflag, oidflag) %>% >> summarise(count=n()) %>% >> arrange(mrjflag,cocflag, inhflag, halflag, oidflag) >> >> >> # This works, giving me the total for each column - This is not what I exactly want. >> rbind(test, colSums(test)) >> >> # I only want the total for the very last column rbind(test, >> c("Total", colSums(test, ...))) >> >> Pradip K. Muhuri, PhD >> SAMHSA/CBHSQ >> 1 Choke Cherry Road, Room 2-1071 >> Rockville, MD 20857 >> Tel: 240-276-1070 >> Fax: 240-276-1260 >> >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help at 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. >
Muhuri, Pradip (SAMHSA/CBHSQ)
2014-Dec-01 01:45 UTC
[R] R dplyr solution vs. Base R solution for the slect column total
Hi Boris, Sorry for not being explicit when replying to your first email. I wanted to say it does not work when row-binding. I want the following output. Thanks, Pradip 1 1 3 2 2 4 Total 7 ################### Below is the console ##########> test <- data.frame(first=c(1,2), second=c(3,4)) > testfirst second 1 1 3 2 2 4> > sum(test$second)[1] 7> > rbind(test, sum(test$second))first second 1 1 3 2 2 4 3 7 7 Pradip K. Muhuri, PhD SAMHSA/CBHSQ 1 Choke Cherry Road, Room 2-1071 Rockville, MD 20857 Tel: 240-276-1070 Fax: 240-276-1260 -----Original Message----- From: Boris Steipe [mailto:boris.steipe at utoronto.ca] Sent: Sunday, November 30, 2014 5:51 PM To: Muhuri, Pradip (SAMHSA/CBHSQ) Cc: r-help at r-project.org Subject: Re: [R] R dplyr solution vs. Base R solution for the slect column total No it doesn't ... consider: test <- data.frame(first=c(1,2), second=c(3,4)) test first second 1 1 3 2 2 4 sum(test$second) [1] 7 On Nov 30, 2014, at 3:48 PM, Muhuri, Pradip (SAMHSA/CBHSQ) <Pradip.Muhuri at samhsa.hhs.gov> wrote:> Hi Boris, > > That gives me the total for each of the 6 columns of the data frame. I want the column sum just for the last column. > > Thanks, > > Pradip Muhuri > > > > -----Original Message----- > From: Boris Steipe [mailto:boris.steipe at utoronto.ca] > Sent: Sunday, November 30, 2014 12:50 PM > To: Muhuri, Pradip (SAMHSA/CBHSQ) > Cc: r-help at r-project.org > Subject: Re: [R] R dplyr solution vs. Base R solution for the slect > column total > > try: > > sum(test$count) > > > B. > > > On Nov 30, 2014, at 12:01 PM, Muhuri, Pradip (SAMHSA/CBHSQ) <Pradip.Muhuri at samhsa.hhs.gov> wrote: > >> Hello, >> >> I am looking for a dplyr or base R solution for the column total - JUST FOR THE LAST COLUMN in the example below. The following code works, giving me the total for each column - This is not exactly what I want. >> rbind(test, colSums(test)) >> >> I only want the total for the very last column. I am struggling with >> this part of the code: rbind(test, c("Total", colSums(test, ...))) I have searched for a solution on Stack Oveflow. I found some mutate() code for the cumsum but no luck for the select column total. Is there a dplyr solution for the select column total? >> >> Any hints will be appreciated. >> >> Thanks, >> >> Pradip Muhuri >> >> >> ####### The following is from the console - the R script with reproducible example is also appended. >> >> >> mrjflag cocflag inhflag halflag oidflag count >> 1 0 0 0 0 0 256 >> 2 0 0 0 1 1 256 >> 3 0 0 1 0 1 256 >> 4 0 0 1 1 1 256 >> 5 0 1 0 0 1 256 >> 6 0 1 0 1 1 256 >> 7 0 1 1 0 1 256 >> 8 0 1 1 1 1 256 >> 9 1 0 0 0 1 256 >> 10 1 0 0 1 1 256 >> 11 1 0 1 0 1 256 >> 12 1 0 1 1 1 256 >> 13 1 1 0 0 1 256 >> 14 1 1 0 1 1 256 >> 15 1 1 1 0 1 256 >> 16 1 1 1 1 1 256 >> 17 8 8 8 8 15 4096 >> >> >> >> ####################### below is the reproducible example >> ######################## >> library(dplyr) >> # generate data >> dlist <- rep( list( 0:1 ), 4 ) >> data <- do.call(expand.grid, drbind) >> data$id <- 1:nrow(data) >> names(data) <- c('mrjflag', 'cocflag', 'inhflag', 'halflag') >> >> >> # mutate a column and then sumamrize >> test <- data %>% >> mutate(oidflag= ifelse(mrjflag==1 | cocflag==1 | inhflag==1 | halflag==1, 1, 0)) %>% >> group_by(mrjflag,cocflag, inhflag, halflag, oidflag) %>% >> summarise(count=n()) %>% >> arrange(mrjflag,cocflag, inhflag, halflag, oidflag) >> >> >> # This works, giving me the total for each column - This is not what I exactly want. >> rbind(test, colSums(test)) >> >> # I only want the total for the very last column rbind(test, >> c("Total", colSums(test, ...))) >> >> Pradip K. Muhuri, PhD >> SAMHSA/CBHSQ >> 1 Choke Cherry Road, Room 2-1071 >> Rockville, MD 20857 >> Tel: 240-276-1070 >> Fax: 240-276-1260 >> >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help at 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. >