Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
177 views
in Technique[技术] by (71.8m points)

gplots - Creating plots of my transactions within R Studio

Good afternoon,

I am trying to create some plots within R Studio from the following data:

structure(list(Transaction = c(1L, 2L, 2L, 3L, 3L, 3L), Item = c("Bread", 
"Scandinavian", "Scandinavian", "Hot chocolate", "Jam", "Cookies"
), period_day = c("morning", "morning", "morning", "morning", 
"morning", "morning"), weekday_weekend = c("weekend", "weekend", 
"weekend", "weekend", "weekend", "weekend"), Month = c("October", 
"October", "October", "October", "October", "October"), Time = c("09", 
"10", "10", "10", "10", "10")), row.names = c(NA, 6L), class = "data.frame")

I am trying to create bar charts to explore the data visually, for instance, I would like to plot:

  1. Transactions per Month.
  2. Transactions per Time of Day (Morning, Afternoon, Evening and Night).
  3. Transactions per Hour of Day (01, 02, 03, etc.).
  4. Transactions per Weekday/Weekend.

For example:

This kind of plot, with different colours for the different months.

How can I start to produce these plots? I have tried the following code:

SalesByTime <- bb_raw %>%
  group_by(Time, Item) %>%
  summarise(Transactions = sum(Item))

But I believe this was taking the sum of the transaction numbers, not the frequency of the sales (see below).

structure(list(Time = c("01", "07", "08", "09", "10", "11", "12", 
"13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23"
), Transactions = c(4090L, 59889L, 3143112L, 9168556L, 12679593L, 
15159832L, 14129139L, 13231165L, 13633823L, 11081386L, 7053231L, 
1969450L, 289382L, 223385L, 104967L, 16411L, 76746L, 22825L)), row.names = c(NA, 
-18L), class = c("tbl_df", "tbl", "data.frame"))

Any suggestions? Any help would be massively appreciated. Please let me know if there's any more information I can provide.

question from:https://stackoverflow.com/questions/65646004/creating-plots-of-my-transactions-within-r-studio

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

If I'm understanding you, you want the number of observations within each group per time period. You can do this with dplyr::n().

df %>%
  group_by(Time, Item) %>%
  summarise(Transactions = n())

#   Time  Item          Transactions
#   <chr> <chr>                <int>
# 1 09    Bread                    1
# 2 10    Cookies                  1
# 3 10    Hot chocolate            1
# 4 10    Jam                      1
# 5 10    Scandinavian             2

To group by just time period, group by the time period(s) you want.

df %>%
  group_by(Time) %>%
  summarise(Transactions = n())

#   Time  Transactions
#   <chr>        <int>
# 1 09               1
# 2 10               5

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...