r-help forum I have a database that I have performed a "group_by" of a variable called CONTBR_OCCUPATION. I then simply want to plot out just the top 15 results as a bar plot. How do I plot only the top 15 groups on the x -axis. Should I just extract the top 15 records and plot them or is the a better way? occup <- myDat %>% group_by(CONTBR_OCCUPATION) %>% summarize(count = n()) %>% arrange(desc(count)) Jeff [[alternative HTML version deleted]]
Hi Jeff, Let's say you have the following data: set.seed(12345) CONTBR_RESULT<-sample(20:200,30) If you don't mind ordering the results, you can do this: barplot(rev(sort(CONTBR_RESULT))[1:15],...) If you want the values in the original order: barplot(CONTBR_RESULT[order(CONTBR_RESULT) > 15],...) Jim On Wed, Oct 16, 2019 at 11:21 AM <reichmanj at sbcglobal.net> wrote:> > r-help forum > > > > I have a database that I have performed a "group_by" of a variable called > CONTBR_OCCUPATION. I then simply want to plot out just the top 15 results as > a bar plot. How do I plot only the top 15 groups on the x -axis. Should I > just extract the top 15 records and plot them or is the a better way? > > > > occup <- myDat %>% > > group_by(CONTBR_OCCUPATION) %>% > > summarize(count = n()) %>% > > arrange(desc(count)) > > > > Jeff > > > > > [[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.
Hello, Inline. ?s 02:51 de 16/10/19, Jim Lemon escreveu:> Hi Jeff, > Let's say you have the following data: > > set.seed(12345) > CONTBR_RESULT<-sample(20:200,30) > > If you don't mind ordering the results, you can do this: > > barplot(rev(sort(CONTBR_RESULT))[1:15],...) > > If you want the values in the original order: > > barplot(CONTBR_RESULT[order(CONTBR_RESULT) > 15],...)This is not right, it keeps the 15 largest *indices*, not values. Here is a way. TopN <- function(x, n, keep.order = FALSE){ nvec <- seq_len(n) if(keep.order){ i <- order(x, decreasing = TRUE)[nvec] x[i[order(i)]] }else{ sort(x, decreasing = TRUE)[nvec] } } barplot(TopN(CONTBR_RESULT, 15)) barplot(TopN(CONTBR_RESULT, 15, TRUE)) Hope this helps, Rui Barradas> > Jim > > On Wed, Oct 16, 2019 at 11:21 AM <reichmanj at sbcglobal.net> wrote: >> >> r-help forum >> >> >> >> I have a database that I have performed a "group_by" of a variable called >> CONTBR_OCCUPATION. I then simply want to plot out just the top 15 results as >> a bar plot. How do I plot only the top 15 groups on the x -axis. Should I >> just extract the top 15 records and plot them or is the a better way? >> >> >> >> occup <- myDat %>% >> >> group_by(CONTBR_OCCUPATION) %>% >> >> summarize(count = n()) %>% >> >> arrange(desc(count)) >> >> >> >> Jeff >> >> >> >> >> [[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. > > ______________________________________________ > 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. >
It`s like this? barplot(CONTBR_RESULT[order(CONTBR_RESULT)][16:30]) Regards Jorge On Wed, 16 Oct 2019 at 02:51, Jim Lemon <drjimlemon at gmail.com> wrote:> Hi Jeff, > Let's say you have the following data: > > set.seed(12345) > CONTBR_RESULT<-sample(20:200,30) > > If you don't mind ordering the results, you can do this: > > barplot(rev(sort(CONTBR_RESULT))[1:15],...) > > If you want the values in the original order: > > barplot(CONTBR_RESULT[order(CONTBR_RESULT) > 15],...) > > Jim > > On Wed, Oct 16, 2019 at 11:21 AM <reichmanj at sbcglobal.net> wrote: > > > > r-help forum > > > > > > > > I have a database that I have performed a "group_by" of a variable called > > CONTBR_OCCUPATION. I then simply want to plot out just the top 15 > results as > > a bar plot. How do I plot only the top 15 groups on the x -axis. Should I > > just extract the top 15 records and plot them or is the a better way? > > > > > > > > occup <- myDat %>% > > > > group_by(CONTBR_OCCUPATION) %>% > > > > summarize(count = n()) %>% > > > > arrange(desc(count)) > > > > > > > > Jeff > > > > > > > > > > [[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. > > ______________________________________________ > 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. >-- Jorge Mendon?a Departamento de Matem?tica Instituto Superior de Engenharia do Porto Portugal [[alternative HTML version deleted]]
Jim That?s certainly much more straight forward. Jeff -----Original Message----- From: Jim Lemon <drjimlemon at gmail.com> Sent: Tuesday, October 15, 2019 8:51 PM To: Jeff Reichman <reichmanj at sbcglobal.net> Cc: r-help mailing list <r-help at r-project.org> Subject: Re: [R] Bar Charts Hi Jeff, Let's say you have the following data: set.seed(12345) CONTBR_RESULT<-sample(20:200,30) If you don't mind ordering the results, you can do this: barplot(rev(sort(CONTBR_RESULT))[1:15],...) If you want the values in the original order: barplot(CONTBR_RESULT[order(CONTBR_RESULT) > 15],...) Jim On Wed, Oct 16, 2019 at 11:21 AM <reichmanj at sbcglobal.net> wrote:> > r-help forum > > > > I have a database that I have performed a "group_by" of a variable > called CONTBR_OCCUPATION. I then simply want to plot out just the top > 15 results as a bar plot. How do I plot only the top 15 groups on the > x -axis. Should I just extract the top 15 records and plot them or is the a better way? > > > > occup <- myDat %>% > > group_by(CONTBR_OCCUPATION) %>% > > summarize(count = n()) %>% > > arrange(desc(count)) > > > > Jeff > > > > > [[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.