Ok great, i have managed to make it work. Herewith my code below. However if one changes the code to run a plot instead of a table, the status of the run does not show in the right upper main panel as with a table , how can we make this work. It should be something to do with the code in line 80 which is "result_val(data.frame(Status="Running..."))". Please just change the code to plot instead of showing a data table and you can see what i mean.
library(shiny)
library(ggplot2)
#> Registered S3 methods overwritten by 'ggplot2':
#> method from
#> [.quosures rlang
#> c.quosures rlang
#> print.quosures rlang
library(promises)
library(future)
library(DT)
plan(multiprocess)
ui <- fluidPage(
titlePanel("Long Run Stoppable Async"),
sidebarLayout(
sidebarPanel(
actionButton('run', 'Run'),
actionButton('cancel', 'Cancel'),
actionButton('status', 'Check Status')
),
mainPanel(
# plotOutput("result")
dataTableOutput("result")
)
)
)
server <- function(input, output) {
N <- 10
# Status File
status_file <- tempfile()
get_status <- function(){
scan(status_file, what = "character",sep="\n")
}
set_status <- function(msg){
write(msg, status_file)
}
fire_interrupt <- function(){
set_status("interrupt")
}
fire_ready <- function(){
set_status("Ready")
}
fire_running <- function(perc_complete){
if(missing(perc_complete))
msg <- "Running..."
else
msg <- paste0("Running... ", perc_complete, "% Complete")
set_status(msg)
}
interrupted <- function(){
get_status() == "interrupt"
}
# Delete file at end of session
onStop(function(){
print(status_file)
if(file.exists(status_file))
unlink(status_file)
})
# Create Status File
fire_ready()
nclicks <- reactiveVal(0)
result_val <- reactiveVal()
observeEvent(input$run,{
# Don't do anything if analysis is already being run
if(nclicks() != 0){
showNotification("Already running analysis")
return(NULL)
}
# Increment clicks and prevent concurrent analyses
nclicks(nclicks() + 1)
result_val(data.frame(Status="Running..."))
fire_running()
result <- future({
print("Running...")
for(i in 1:N){
# Long Running Task
Sys.sleep(1)
# Check for user interrupts
if(interrupted()){
print("Stopping...")
stop("User Interrupt")
}
# Notify status file of progress
fire_running(100*i/N)
}
#Some results
data <- read.csv("data/MBA_Online.csv")
#Use plot
# data %>%
# mutate(Month=as.factor(month(Date))) %>%
# dplyr::group_by(Month) %>%
# dplyr::summarize(Transactions = n_distinct(Transaction)) %>%
# ggplot(aes(x=Month, y = Transactions, fill = Month)) +
# geom_bar(stat="identity") +
# geom_label(aes(label= format(Transactions, big.mark = ",")))+
# theme(legend.position="none")+
# theme(panel.background = element_blank())+
# labs(x = "Month", y = "Transactions", title = "Transactions per month")
# Use table instead of plot
retailSales <- data %>%
dplyr::group_by(Item) %>%
dplyr::summarise(TotalSales = sum(Amount), TotalQuntity = sum(Quantity), TotalCustomers = n_distinct(CustomerID))
retailSales
datatable(retailSales) %>%
formatCurrency('TotalSales')
}) %...>% result_val()
# Catch inturrupt (or any other error) and notify user
result <- catch(result,
function(e){
result_val(NULL)
print(e$message)
showNotification(e$message)
})
# After the promise has been evaluated set nclicks to 0 to allow for anlother Run
result <- finally(result,
function(){
fire_ready()
nclicks(0)
})
# Return something other than the promise so shiny remains responsive
NULL
})
output$result <- renderDataTable({
req(result_val())
})
# Register user interrupt
observeEvent(input$cancel,{
print("Cancel")
fire_interrupt()
})
# Let user get analysis progress
observeEvent(input$status,{
print("Status")
showNotification(get_status())
})
}
# Run the application
shinyApp(ui = ui, server = server)
Herewith sample data:
data.frame(
Transaction = c(547663L, 547663L, 547663L, 547663L, 547663L, 547663L,
547663L, 547663L, 547663L, 547663L, 547663L, 547664L,
547664L, 547664L, 547664L, 547664L, 547664L, 547664L, 547664L,
547664L, 547664L, 547664L, 547664L, 547664L, 547664L, 547664L,
547664L, 547664L, 547664L, 547664L, 547664L, 547664L, 547664L,
547664L, 547664L, 547664L, 547664L, 547664L, 547664L, 547664L,
547664L, 547664L, 547664L, 547664L, 547664L, 547664L, 547664L,
547664L, 547664L, 547664L, 547664L, 547664L, 547664L, 547664L,
547664L, 547664L, 547664L, 547664L, 547664L, 547665L, 547665L,
547665L, 547665L, 547665L, 547665L, 547665L, 547665L,
547665L, 547665L, 547665L, 547665L, 547665L, 547665L, 547665L,
547665L, 547665L, 547665L, 547665L, 547665L, 547665L, 547666L,
547666L, 547666L, 547666L, 547666L, 547666L, 547666L, 547666L,
547666L, 547666L, 547666L, 547666L, 547666L, 547666L, 547666L,
547666L, 547666L, 547666L, 547666L, 547666L, 547666L, 547666L,
547666L, 547666L, 547666L, 547666L, 547666L, 547666L, 547666L,
547666L, 547667L, 547667L, 547667L, 547667L, 547667L, 547667L,
547667L, 547667L, 547667L, 547667L, 547667L, 547667L, 547667L,
547667L, 547667L, 547667L, 547667L, 547667L, 547667L,
547667L, 547667L, 547667L, 547667L, 547667L, 547667L, 547667L,
547667L, 547667L, 547667L, 547667L, 547668L, 547668L, 547668L,
547668L, 547668L, 547668L, 547668L, 547668L, 547668L, 547669L,
547669L, 547669L, 547669L, 547669L, 547669L, 547669L, 547669L,
547669L, 547669L, 547669L, 547669L, 547669L, 547669L, 547669L,
547669L, 547669L, 547669L, 547669L, 547669L, 547669L, 547669L,
547669L, 547669L, 547669L, 547669L, 547669L, 547669L, 547670L,
547670L, 547670L, 547670L, 547670L, 547670L, 547670L, 547670L,
547670L, 547670L, 547670L, 547670L, 547670L),
Quantity = c(10L, 2L, 1L, 10L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L,
1L, 2L, 1L, 12L, 1L, 1L, 2L, 6L, 12L, 6L, 6L, 9L, 1L, 10L,
10L, 10L, 12L, 12L, 2L, 2L, 5L, 5L, 5L, 5L, 40L, 4L, 24L, 24L,
24L, 24L, 40L, 2L, 6L, 6L, 1L, 1L, 1L, 8L, 1L, 1L, 2L, 12L,
12L, 12L, 12L, 12L, 12L, 12L, 6L, 6L, 6L, 6L, 6L, 4L, 2L, 6L,
6L, 6L, 2L, 2L, 2L, 2L, 1L, 4L, 3L, 6L, 16L, 25L, 25L, 24L, 25L,
25L, 40L, 40L, 6L, 3L, 12L, 24L, 24L, 12L, 48L, 48L, 25L,
24L, 6L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 24L,
6L, 12L, 12L, 12L, 12L, 24L, 24L, 24L, 24L, 24L, 24L, 8L, 6L,
6L, 10L, 6L, 6L, 24L, 8L, 12L, 6L, 6L, 12L, 12L, 12L, 24L, 24L,
20L, 20L, 20L, 24L, 12L, 5L, 6L, 18L, 5L, 6L, 1L, 18L, 1L,
1L, 1L, 1L, 1L, 2L, 1L, 1L, 4L, 1L, 1L, 4L, 2L, 10L, 5L, 1L, 1L,
5L, 5L, 1L, 1L, 1L, 1L, 1L, 1L, 24L, 24L, 24L, 2L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 1L),
CustomerID = c(16022L, 16022L, 16022L, 16022L, 16022L, 16022L, 16022L,
16022L, 16022L, 16022L, 16022L, 13069L, 13069L, 13069L,
13069L, 13069L, 13069L, 13069L, 13069L, 13069L, 13069L, 13069L,
13069L, 13069L, 13069L, 13069L, 13069L, 13069L, 13069L, 13069L,
13069L, 13069L, 13069L, 13069L, 13069L, 13069L, 13069L,
13069L, 13069L, 13069L, 13069L, 13069L, 13069L, 13069L, 13069L,
13069L, 13069L, 13069L, 13069L, 13069L, 13069L, 13069L, 13069L,
13069L, 13069L, 13069L, 13069L, 13069L, 13069L, 14256L, 14256L,
14256L, 14256L, 14256L, 14256L, 14256L, 14256L, 14256L,
14256L, 14256L, 14256L, 14256L, 14256L, 14256L, 14256L, 14256L,
14256L, 14256L, 14256L, 14256L, 14235L, 14235L, 14235L, 14235L,
14235L, 14235L, 14235L, 14235L, 14235L, 14235L, 14235L, 14235L,
14235L, 14235L, 14235L, 14235L, 14235L, 14235L, 14235L,
14235L, 14235L, 14235L, 14235L, 14235L, 14235L, 14235L, 14235L,
14235L, 14235L, 14235L, 16700L, 16700L, 16700L, 16700L, 16700L,
16700L, 16700L, 16700L, 16700L, 16700L, 16700L, 16700L, 16700L,
16700L, 16700L, 16700L, 16700L, 16700L, 16700L, 16700L,
16700L, 16700L, 16700L, 16700L, 16700L, 16700L, 16700L, 16700L,
16700L, 16700L, 14071L, 14071L, 14071L, 14071L, 14071L, 14071L,
14071L, 14071L, 14071L, 12748L, 12748L, 12748L, 12748L, 12748L,
12748L, 12748L, 12748L, 12748L, 12748L, 12748L, 12748L,
12748L, 12748L, 12748L, 12748L, 12748L, 12748L, 12748L, 12748L,
12748L, 12748L, 12748L, 12748L, 12748L, 12748L, 12748L, 12748L,
16769L, 16769L, 16769L, 16769L, 16769L, 16769L, 16769L, 16769L,
16769L, 16769L, 16769L, 16769L, 16769L),
Amount = c(42.5, 1.7, 8.5, 32.5, 5.9, 5.9, 5.9, 4.2, 4.2, 8.5, 8.5,
7.95, 4.95, 4.95, 5.45, 5.9, 2.55, 4.68, 2.95, 2.95, 2.5,
2.34, 1.44, 5.7, 5.1, 11.25, 1.25, 21, 21, 3.9, 4.68, 4.68,
0.78, 0.78, 2.1, 2.1, 2.1, 2.1, 16.8, 3.32, 10.08, 10.08, 10.08,
10.08, 16.8, 3.3, 2.34, 2.34, 1.25, 8.95, 7.95, 3.36, 5.95,
2.95, 2.5, 4.68, 4.68, 4.68, 4.68, 10.2, 45, 17.4, 19.5, 29.7,
22.5, 12.6, 17.7, 34, 19.9, 15.3, 15.3, 17.7, 13.5, 13.5, 15.9,
15.9, 14.95, 19.8, 29.85, 45, 79.2, 10.5, 10.5, 39.6, 10.5,
10.5, 78, 78, 17.7, 14.85, 17.4, 102, 82.8, 15, 60, 20.16, 10.5,
20.4, 17.7, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5,
12.5, 12.5, 30, 22.5, 17.4, 15, 15, 23.4, 10.08, 10.08, 10.08,
10.08, 10.08, 10.08, 18, 17.7, 25.5, 16.5, 17.7, 12.6, 13.2,
20.4, 5.04, 15.3, 15.3, 5.04, 5.04, 5.04, 10.08, 10.08, 39, 39,
39, 40.56, 17.4, 14.75, 9.9, 15.3, 9.75, 7.5, 0.95, 15.3,
1.95, 2.95, 7.95, 8.5, 4.25, 1.7, 2.95, 18.95, 7.8, 4.25, 6.75,
7.8, 3.9, 19.5, 9.75, 2.08, 1.95, 1.45, 4.75, 2.95, 2.55, 2.55,
0.55, 3.75, 1.69, 10.08, 10.08, 10.08, 5.9, 2.95, 2.95, 2.95,
2.95, 2.95, 2.95, 1.25, 1.25, 1.25, 1.25, 29.85, 5.95),
Item = as.factor(c("DOG BOWL VINTAGE CREAM",
"BEST DAD CANDLE LETTERS",
"VINTAGE CREAM DOG FOOD CONTAINER", "CAT BOWL VINTAGE CREAM",
"BLACK AND WHITE DOG BOWL", "PINK DOG BOWL",
"BLACK AND WHITE DOG BOWL", "BLACK AND WHITE CAT BOWL", "PINK CAT BOWL",
"IVORY DINER WALL CLOCK", "IVORY DINER WALL CLOCK",
"DOORMAT RED RETROSPOT", "TEA TIME PARTY BUNTING",
"PARTY BUNTING", "BLUE HAPPY BIRTHDAY BUNTING",
"RED RETROSPOT PICNIC BAG",
"KINGS CHOICE GIANT TUBE MATCHES", "BLUE POLKADOT COFFEE MUG",
"ROUND SNACK BOXES SET OF4 WOODLAND ",
"ROUND SNACK BOXES SET OF 4 FRUITS ", "SET OF 4 PANTRY JELLY MOULDS",
"BLUE POLKADOT EGG CUP ", "RED EGG SPOON",
"SINGLE HEART ZINC T-LIGHT HOLDER",
"HANGING HEART ZINC T-LIGHT HOLDER", "WHITE SPOT BLUE CERAMIC DRAWER KNOB",
"GARLAND WOODEN HAPPY EASTER", "RECYCLING BAG RETROSPOT ",
"TOY TIDY SPACEBOY ", "LOVE HEART TRINKET POT",
"ASSTD MULTICOLOUR CIRCLES MUG",
"MULTICOLOUR SPRING FLOWER MUG", "YELLOW BREAKFAST CUP AND SAUCER",
"PINK BREAKFAST CUP AND SAUCER ",
"TRAVEL CARD WALLET UNION JACK", "TRAVEL CARD WALLET SUKI",
"TRAVEL CARD WALLET RETROSPOT", "TRAVEL CARD WALLET VINTAGE TICKET",
"SMALL LICORICE DES PINK BOWL",
"CERAMIC BOWL WITH LOVE HEART DESIGN", "SMALL CHOCOLATES PINK BOWL",
"BISCUITS SMALL BOWL LIGHT BLUE",
"MIXED NUTS LIGHT GREEN BOWL", "SMALL MARSHMALLOWS PINK BOWL",
"SMALL DOLLY MIX DESIGN ORANGE BOWL",
"PINK HEART SHAPE EGG FRYING PAN", "BLUE POLKADOT PUDDING BOWL",
"CUBIC MUG PINK POLKADOT", "BASKET OF TOADSTOOLS",
"WOOD S/3 CABINET ANT WHITE FINISH", "VICTORIAN SEWING BOX MEDIUM",
"SMALL CHOCOLATES PINK BOWL",
"LOVE BUILDING BLOCK WORD", "PAPER CHAIN KIT EMPIRE",
"GARLAND WOODEN HAPPY EASTER", "BLUE POLKADOT BEAKER ",
"RED POLKADOT COFFEE MUG", "BLUE POLKADOT COFFEE MUG",
"RED POLKADOT BEAKER ", "PACK OF 20 NAPKINS PANTRY DESIGN",
"JAM MAKING SET WITH JARS", "JAM MAKING SET PRINTED",
"SET 2 PANTRY DESIGN TEA TOWELS",
"SET OF 3 CAKE TINS PANTRY DESIGN ", "PANTRY ROLLING PIN",
"3 TRADITIONAl BISCUIT CUTTERS SET",
"ROUND SNACK BOXES SET OF4 WOODLAND ", "BLACK KITCHEN SCALES",
"TABLECLOTH RED APPLES DESIGN ", "COFFEE MUG APPLES DESIGN",
"COFFEE MUG PEARS DESIGN",
"SET OF 2 TEA TOWELS APPLE AND PEARS", "BISCUIT TIN VINTAGE GREEN",
"BISCUIT TIN VINTAGE RED", "ROUND CAKE TIN VINTAGE GREEN",
"ROUND CAKE TIN VINTAGE RED",
"3 TIER CAKE TIN GREEN AND CREAM", "CREAM SWEETHEART EGG HOLDER",
"SWEETHEART CAKESTAND 3 TIER", "WHITE WIRE EGG HOLDER",
"PICNIC BASKET WICKER SMALL", "WRAP DOILEY DESIGN",
"WRAP DOLLY GIRL", "SET OF 3 NOTEBOOKS IN PARCEL", "WRAP,
BILLBOARD FONTS DESIGN", "FANCY FONTS BIRTHDAY WRAP",
"JUMBO BAG STRAWBERRY", "JUMBO BAG RED RETROSPOT",
"SET/5 RED RETROSPOT LID GLASS BOWLS",
"RED RETROSPOT BUTTER DISH", "JAM MAKING SET PRINTED",
"SET OF 3 CAKE TINS PANTRY DESIGN ",
"SET OF 6 SPICE TINS PANTRY DESIGN", "GIN AND TONIC MUG",
"FILIGRIS HEART WITH BUTTERFLY", "SET 12 RETRO WHITE CHALK STICKS",
"GINGHAM ROSE WRAP", "TEA BAG PLATE RED RETROSPOT",
"RECIPE BOX PANTRY YELLOW DESIGN",
"FRENCH BLUE METAL DOOR SIGN No", "FRENCH BLUE METAL DOOR SIGN 0",
"FRENCH BLUE METAL DOOR SIGN 9",
"FRENCH BLUE METAL DOOR SIGN 8", "FRENCH BLUE METAL DOOR SIGN 7",
"FRENCH BLUE METAL DOOR SIGN 6", "FRENCH BLUE METAL DOOR SIGN 5",
"FRENCH BLUE METAL DOOR SIGN 4",
"FRENCH BLUE METAL DOOR SIGN 2", "FRENCH BLUE METAL DOOR SIGN 1",
"HANGING HEART JAR T-LIGHT HOLDER", "PANTRY ROLLING PIN",
"PANTRY WASHING UP BRUSH",
"SET OF 4 PANTRY JELLY MOULDS", "PANTRY PASTRY BRUSH",
"GIRAFFE WOODEN RULER", "TRAVEL CARD WALLET RETROSPOT",
"TRAVEL CARD WALLET SUKI", "TRAVEL CARD WALLET VINTAGE TICKET",
"TRAVEL CARD WALLET RETRO PETALS",
"TRAVEL CARD WALLET KEEP CALM", "TRAVEL CARD WALLET UNION JACK",
"BUFFALO BILL TREASURE BOOK BOX",
"RECIPE BOX PANTRY YELLOW DESIGN", "JAM MAKING SET WITH JARS",
"LUNCH BAG RED RETROSPOT", "ROUND SNACK BOXES SET OF 4 FRUITS ",
"36 FOIL STAR CAKE CASES ",
"60 CAKE CASES DOLLY GIRL DESIGN", "PIGGY BANK RETROSPOT ",
"CARD I LOVE LONDON ", "LONDON BUS COFFEE MUG",
"QUEENS GUARD COFFEE MUG", "SWALLOWS GREETING CARD", "CARD CIRCUS PARADE",
"CARD BILLBOARD FONT",
"TRAVEL CARD WALLET TRANSPORT", "TRAVEL CARD WALLET FLOWER MEADOW",
"JUMBO STORAGE BAG SUKI", "JUMBO BAG BAROQUE BLACK WHITE",
"JUMBO BAG RED RETROSPOT",
"MINI WOODEN HAPPY BIRTHDAY GARLAND", "JIGSAW TREE WITH BIRDHOUSE",
"PAPER CHAIN KIT EMPIRE", "JIGSAW RABBIT AND BIRDHOUSE",
"PARTY PIZZA DISH BLUE POLKADOT",
"VINTAGE UNION JACK PENNANT", "BIRDCAGE DECORATION TEALIGHT HOLDER",
"REX CASH+CARRY JUMBO SHOPPER",
"PARTY PIZZA DISH RED RETROSPOT", "BLACK TEA,COFFEE,SUGAR JARS",
"STRAWBERRY PICNIC BAG", "DOORMAT 3 SMILEY CATS",
"BLACK KITCHEN SCALES", "AIRLINE BAG VINTAGE TOKYO 78",
"SET/20 RED RETROSPOT PAPER NAPKINS ",
"SET OF 2 ROUND TINS CAMEMBERT ", "ACRYLIC GEOMETRIC LAMP",
"JUMBO BAG BAROQUE BLACK WHITE",
"GARDENIA 1 WICK MORRIS BOXED CANDLE", "PEACE SMALL WOOD LETTERS",
"JUMBO BAG STRAWBERRY", "JUMBO STORAGE BAG SKULLS",
"JUMBO STORAGE BAG SUKI", "JUMBO BAG SCANDINAVIAN BLUE PAISLEY",
"COOK WITH WINE METAL SIGN ", "JUMBO BAG STRAWBERRY",
"FAN BLACK FRAME ", "REX CASH+CARRY JUMBO SHOPPER",
"PAPER BUNTING WHITE LACE",
"BAKING MOULD HEART MILK CHOCOLATE", "BAKING MOULD TOFFEE CUP CHOCOLATE",
"PACK OF 60 SPACEBOY CAKE CASES",
"GAOLERS KEYS DECORATIVE GARDEN ", "FAIRY SOAP SOAP HOLDER",
"TRAVEL CARD WALLET KEEP CALM", "TRAVEL CARD WALLET SUKI",
"TRAVEL CARD WALLET SKULLS", "GLASS JAR MARMALADE ",
"GLASS JAR DIGESTIVE BISCUITS",
"GLASS JAR DAISY FRESH COTTON WOOL", "GLASS JAR MARMALADE ",
"GLASS JAR DIGESTIVE BISCUITS", "GLASS JAR KINGS CHOICE",
"GLASS JAR PEACOCK BATH SALTS", "RED SPOT CERAMIC DRAWER KNOB",
"RED STRIPE CERAMIC DRAWER KNOB",
"BLUE STRIPE CERAMIC DRAWER KNOB", "WHITE SPOT RED CERAMIC DRAWER KNOB",
"PICNIC BASKET WICKER LARGE",
"HOME BUILDING BLOCK WORD")),
Date = as.factor(c("16:00.0", "16:00.0", "16:00.0", "16:00.0",
"16:00.0", "16:00.0", "16:00.0", "16:00.0",
"16:00.0", "16:00.0", "16:00.0", "16:00.0", "16:00.0",
"16:00.0", "16:00.0", "16:00.0", "16:00.0", "16:00.0",
"16:00.0", "16:00.0", "16:00.0", "16:00.0",
"16:00.0", "16:00.0", "16:00.0", "16:00.0", "16:00.0",
"16:00.0", "16:00.0", "16:00.0", "16:00.0", "16:00.0",
"16:00.0", "16:00.0", "16:00.0", "16:00.0", "16:00.0",
"16:00.0", "16:00.0", "16:00.0", "16:00.0",
"16:00.0", "16:00.0", "16:00.0", "16:00.0", "16:00.0",
"16:00.0", "16:00.0", "16:00.0", "16:00.0", "16:00.0",
"16:00.0", "16:00.0", "16:00.0", "16:00.0",
"16:00.0", "16:00.0", "16:00.0", "16:00.0", "17:00.0",
"17:00.0", "17:00.0", "17:00.0", "17:00.0", "17:00.0",
"17:00.0", "17:00.0", "17:00.0", "17:00.0", "17:00.0",
"17:00.0", "17:00.0", "17:00.0", "17:00.0",
"17:00.0", "17:00.0", "17:00.0", "17:00.0", "17:00.0",
"17:00.0", "23:00.0", "23:00.0", "23:00.0", "23:00.0",
"23:00.0", "23:00.0", "23:00.0", "23:00.0", "23:00.0",
"23:00.0", "23:00.0", "23:00.0", "23:00.0",
"23:00.0", "23:00.0", "23:00.0", "23:00.0", "23:00.0",
"23:00.0", "23:00.0", "23:00.0", "23:00.0", "23:00.0",
"23:00.0", "23:00.0", "23:00.0", "23:00.0",
"23:00.0", "23:00.0", "23:00.0", "25:00.0", "25:00.0",
"25:00.0", "25:00.0", "25:00.0", "25:00.0", "25:00.0",
"25:00.0", "25:00.0", "25:00.0", "25:00.0", "25:00.0",
"25:00.0", "25:00.0", "25:00.0", "25:00.0",
"25:00.0", "25:00.0", "25:00.0", "25:00.0", "25:00.0",
"25:00.0", "25:00.0", "25:00.0", "25:00.0", "25:00.0",
"25:00.0", "25:00.0", "25:00.0", "25:00.0", "28:00.0",
"28:00.0", "28:00.0", "28:00.0", "28:00.0",
"28:00.0", "28:00.0", "28:00.0", "28:00.0", "37:00.0",
"37:00.0", "37:00.0", "37:00.0", "37:00.0", "37:00.0",
"37:00.0", "37:00.0", "37:00.0", "37:00.0",
"37:00.0", "37:00.0", "37:00.0", "37:00.0", "37:00.0",
"37:00.0", "37:00.0", "37:00.0", "37:00.0", "37:00.0",
"37:00.0", "37:00.0", "37:00.0", "37:00.0", "37:00.0",
"37:00.0", "37:00.0", "37:00.0", "41:00.0",
"41:00.0", "41:00.0", "41:00.0", "41:00.0", "41:00.0",
"41:00.0", "41:00.0", "41:00.0", "41:00.0", "41:00.0",
"41:00.0", "41:00.0")),
monthYear = as.factor(c("Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11", "Mar-11",
"Mar-11", "Mar-11", "Mar-11", "Mar-11"))
)