50 lines
1.4 KiB
Plaintext
50 lines
1.4 KiB
Plaintext
---
|
|
title: "Untitled"
|
|
author: "Matt"
|
|
date: "April 7, 2016"
|
|
output: html_document
|
|
---
|
|
|
|
```{r setup, include=FALSE}
|
|
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)
|
|
|
|
# Pull Google sheet locations from another file (journal1, journal2, etc.)
|
|
source("config.R")
|
|
|
|
# Combine bank accounts
|
|
journal<-rbind(journal1,journal2)
|
|
|
|
## Clean up
|
|
# Date is date
|
|
journal$Date<-as.Date(journal$Date,format="%m/%d/%Y")
|
|
# Class is a factor
|
|
journal$Class<-as.factor(journal$Class)
|
|
# Debit and Credit are numeric, without commas
|
|
journal$Debit<-as.numeric(sub(",","",journal$Debit))
|
|
journal$Credit<-as.numeric(sub(",","",journal$Credit))
|
|
|
|
# Start thinking about reports
|
|
# All time net
|
|
# TODO should be function
|
|
net<-sum(journal$Credit,na.rm=T)-sum(journal$Debit,na.rm=T)
|
|
|
|
# Net by class and date range
|
|
# TODO should be function that uses the net function above
|
|
classes<-levels(journal$Class)
|
|
|
|
for (i in 1:length(classes))
|
|
{ print(paste(classes[i],
|
|
" net is ",
|
|
sum(journal$Credit[journal$Class==classes[i]],na.rm=T)-sum(journal$Debit[journal$Class==classes[i]],na.rm=T)))
|
|
}
|
|
|
|
# See other reports in QB and Ledger
|
|
|
|
``` |