Clean some things up and get ready for Shiny.

This commit is contained in:
Matt
2016-04-14 15:53:50 -05:00
parent 8ea93f8c98
commit 518449e674
3 changed files with 71 additions and 8 deletions

26
ledgerr-shiny/server.R Normal file
View File

@ -0,0 +1,26 @@
#
# This is the server logic of a Shiny web application. You can run the
# application by clicking 'Run App' above.
#
# Find out more about building applications with Shiny here:
#
# http://shiny.rstudio.com/
#
library(shiny)
# Define server logic required to draw a histogram
shinyServer(function(input, output) {
output$distPlot <- renderPlot({
# generate bins based on input$bins from ui.R
x <- faithful[, 2]
bins <- seq(min(x), max(x), length.out = input$bins + 1)
# draw the histogram with the specified number of bins
hist(x, breaks = bins, col = 'darkgray', border = 'white')
})
})

33
ledgerr-shiny/ui.R Normal file
View File

@ -0,0 +1,33 @@
#
# This is the user-interface definition of a Shiny web application. You can
# run the application by clicking 'Run App' above.
#
# Find out more about building applications with Shiny here:
#
# http://shiny.rstudio.com/
#
library(shiny)
# Define UI for application that draws a histogram
shinyUI(fluidPage(
# Application title
titlePanel("Old Faithful Geyser Data"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
sliderInput("bins",
"Number of bins:",
min = 1,
max = 50,
value = 30)
),
# Show a plot of the generated distribution
mainPanel(
plotOutput("distPlot")
)
)
))

View File

@ -9,12 +9,17 @@ output: html_document
knitr::opts_chunk$set(echo = TRUE)
```
Should use this document for actual operations and keep actual functions in another document for the public [GitHub repo](https://github.com/mattbk/ledgerr). Shiny will be set up at https://www.shinyapps.io/admin/#/dashboard.
```{r}
# Use https://github.com/maxconway/gsheet
library(gsheet)
# Use the functions in ledgerr (the package that is part of this project) but don't load the package itself--this will let us deploy to Shiny.io more easily.
library(R.utils) #for sourceDirectory()
sourceDirectory("ledgerr/R")
# For Shiny
library(rsconnect)
# Pull Google sheet locations from another file (journal1, journal2, etc.)
source("config.R")
@ -39,15 +44,18 @@ journal$Credit<-as.numeric(sub(",","",journal$Credit))
################# work in progress
# This could replace net.acc, check numbers
## This could replace net.acc, check numbers
a<-aggregate(cbind(Credit,Debit=-Debit)~Account,data=journal,function(x) sum(x, na.rm=TRUE),na.action="na.pass")
# Select by class (modify to include dates)
#a<-aggregate(cbind(Credit,Debit=-Debit)~Account,data=journal[journal$Class %in% "Bikecicle",],function(x) sum(x, na.rm=TRUE),na.action="na.pass")
# na.pass: http://stackoverflow.com/a/16844940/2152245
# This is a column rename on the fly: "Debit=-Debit"
# Calculate net column
a$Net<-rowSums(a[,2:3],na.rm=T)
# Calculate total--need to clean up
colSums(a[-1])
# This is a column rename on the fly: "Debit=-Debit"
# This could replace net.class, check numbers
a<-aggregate(cbind(Credit,Debit=-Debit)~Class,data=journal,function(x) sum(x, na.rm=TRUE),na.action="na.pass")
@ -56,9 +64,5 @@ a$Net<-rowSums(a[,2:3],na.rm=T)
# Calculate total--need to clean up
colSums(a[-1])
# This could also replace net.class if in the right layout (http://nicercode.github.io/guides/repeating-things/)
class.split<-split(journal,journal$Class)
sapply(class.split, net)
```