Skip to content

Commit

Permalink
version 0.1.1
Browse files Browse the repository at this point in the history
  • Loading branch information
conig authored and cran-robot committed Mar 13, 2017
1 parent 79e62c1 commit ebcc99d
Show file tree
Hide file tree
Showing 7 changed files with 107 additions and 45 deletions.
13 changes: 6 additions & 7 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
Package: Conigrave
Type: Package
Title: Flexible Tools for Multiple Imputation
Version: 0.1.0
Date: 2016-06-10
Version: 0.1.1
Date: 2017-03-05
Author: James Conigrave
Maintainer: James Conigrave <james.conigrave@gmail.com>
Description: Provides a set of tools that can be used across 'data.frame' and
'imputationList' objects.
License: GPL-3
LazyData: TRUE
Imports: ggplot2 (>= 2.1.0), mitools (>= 2.3), miceadds (>= 1.8-0),
stats (>= 3.3.0)
RoxygenNote: 5.0.1
Imports: ggplot2 (>= 2.1.0), mitools (>= 2.3), miceadds (>= 1.8-0)
RoxygenNote: 6.0.1
NeedsCompilation: no
Packaged: 2016-06-16 05:04:12 UTC; James
Packaged: 2017-03-13 03:40:03 UTC; s00183509
Repository: CRAN
Date/Publication: 2016-06-16 12:32:15
Date/Publication: 2017-03-13 06:52:54
12 changes: 6 additions & 6 deletions MD5
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
4f2af9497484594cf28e03a687010a32 *DESCRIPTION
5bc5cfa2d66a18afead16cf2ca3a2f26 *NAMESPACE
0e2c63f8077a526d9e337ffe9fc9ac09 *R/Interaction.plot.R
cce1cfe07170c70a92b59e08f09eabd2 *R/correlatrix.R
b18ed39bbf7ac2e0c536684c7102a040 *man/correlatrix.Rd
6e276ddf984c22b717c5a7fcbf9d6eac *man/int.plot.Rd
68310b10856cab72d05d93c396a10555 *DESCRIPTION
586163350489955f3267bdd031c8be0c *NAMESPACE
59b24acfef4abd459869b8790e51f859 *R/Interaction.plot.R
758d6a8c57ad0fe916a2d1a6e1fb857c *R/correlatrix.R
b207704dea49e64605a1b1a3a8545aa0 *man/correlatrix.Rd
703a82e2b8b328a852fdab381738ecbc *man/int.plot.Rd
4 changes: 3 additions & 1 deletion NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
export(correlatrix)
export(int.plot)
import(ggplot2)
import(stats)
importFrom(miceadds,micombine.cor)
importFrom(mitools,MIcombine)
importFrom(stats,cor.test)
importFrom(stats,lm)
importFrom(stats,na.omit)
6 changes: 3 additions & 3 deletions R/Interaction.plot.R
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#' Interaction plot
#'
#' Calculates a two way or three way interaction and plots using ggplot2
#' Calculates a standardized two way or three way interaction and plots using ggplot2
#' @param data an object of class 'data.frame' or 'imputationList'
#' @param outcome a string with the name of the outcome variable
#' @param predictor a string with the name of the predictor variable
Expand All @@ -24,6 +24,7 @@
#' @export
#' @import ggplot2
#' @importFrom mitools MIcombine
#' @importFrom stats cor.test lm na.omit
#' @return An interaction plot

################################################################################
Expand Down Expand Up @@ -131,8 +132,7 @@ int.plot <- function(data, outcome, predictor, moderator, y.lim = c(-1,1),
theme(panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
panel.border=element_blank(),
axis.line.x=element_line(),
axis.line.y=element_line())
axis.line=element_line())

##create dataset for ggplot
colnames<-c(outcome, predictor, moderator)
Expand Down
99 changes: 80 additions & 19 deletions R/correlatrix.R
Original file line number Diff line number Diff line change
@@ -1,35 +1,40 @@
#' Correlatrix
#'
#' Takes in a data.frame or imputationList, a vector of collumn names and produces a correlation matrix
#' Takes in a data.frame or imputationList, a vector of variable names and produces a correlation matrix
#' @param data an object of class 'data.frame' or 'imputationList'
#' @param var.names a vector of collumn names
#' @param var.names a vector of variable names
#' @param triangle a string containing one of "lower" "upper" or "both". Indicates if correlations are to be displayed above or below the diagonal. "Both" is selected by default.
#' @param round a numeral indicating number of decimals
#' @param method a string containing one of "pearson","spearman" or "kendall"
#' @param n.matrix logical. If TRUE, matrix of n returned
#' @param name.max a number indicating the maximum length of variable names
#' @param abbreviate a number indicating the maximum length of variable names
#' @examples carsdata<-mtcars
#' correlatrix(carsdata,names(carsdata),round = 2)
#' correlatrix(carsdata,names(carsdata)[1:6],round = 2)
#' correlatrix(carsdata,c("mpg","cyl","disp"))
#' @export
#' @import stats
#' @importFrom stats na.omit cor.test
#' @importFrom miceadds micombine.cor
#' @return A correlation matrix

correlatrix <- function(data, var.names, round=3, method = "pearson", n.matrix = F,
name.max = 100){
correlatrix <- function(data, var.names, triangle = "both", round = 3, method = "pearson", n.matrix = F,
abbreviate = 100){
##check arguments
if(!(triangle %in% c("lower","upper","both"))){
stop(paste("Check help file: triangle may not be equal to", triangle))
}


specify_decimal <- function(x, k) format(round(x, k), nsmall=k)

result.matrix<-matrix(ncol=length(var.names)+1,nrow=length(var.names)*1)
result.matrix<-matrix(ncol=length(var.names),nrow=length(var.names)*1)
result.matrix<-data.frame(result.matrix)
names(result.matrix)<-c("Vars",1:length(var.names))
###create row names
for(i in 1:length(var.names)){
result.matrix[i*+1,1]<-substr(var.names[i],1,name.max)
}

###results
for (c in 1:length(var.names)){#collumn loop start
for (r in 1:length(var.names)){#row loop start{
###result
if(c<r){

##get result
if(class(data) == "data.frame"){
cor.result<-cor.test(as.numeric(data[,var.names[c]]),as.numeric(data[,var.names[r]]),method = method)
result<-cor.result$estimate
Expand All @@ -44,7 +49,28 @@ correlatrix <- function(data, var.names, round=3, method = "pearson", n.matrix =
}else{
result = " "
p = 1
}
}
### place result in data.frame
if(triangle == "upper"){
if(r<c){

if(class(data) == "data.frame"){
cor.result<-cor.test(as.numeric(data[,var.names[c]]),as.numeric(data[,var.names[r]]),method = method)
result<-cor.result$estimate
p<-cor.result$p.value }

if(class(data) == "imputationList"){
cor.result<-micombine.cor(data,c(var.names[c],var.names[r]), method = method)
result<-cor.result$r[1]
p<-cor.result$p[1]}

result<-specify_decimal(result,round)
}else{
result = " "
p = 1
}
}

result.final<-result##add significance stars


Expand All @@ -53,6 +79,8 @@ correlatrix <- function(data, var.names, round=3, method = "pearson", n.matrix =
result.final<-paste(result,"*",sep="")}
if(p<0.01){
result.final<-paste(result,"**",sep="")}
if(p<0.001){
result.final<-paste(result,"***",sep="")}

if(n.matrix == T){
if(class(data) == "data.frame"){
Expand All @@ -62,24 +90,57 @@ correlatrix <- function(data, var.names, round=3, method = "pearson", n.matrix =
}

result.final <- length(na.omit(cor.data[,var.names[c]][is.na(cor.data[,var.names[r]])==F]))
}

if(triangle == "lower"){
if(c<r){
result.matrix[r,c]<-result.final
}
if(c>r){
result.matrix[r,c]<-" "
}
names(result.matrix)<-1:length(var.names)
for(r in seq_along(var.names)){
row.names(result.matrix)[r] <- paste(r,".",abbreviate(var.names[r],abbreviate), sep = "")
}

result.matrix[r,c+1]<-result.final
}

if(triangle == "upper"){
if(c>r){
result.matrix[r,c+1]<-" "
result.matrix[r,c]<-result.final
}
if(c<r){
result.matrix[r,c]<-" "
}
names(result.matrix)<-1:length(var.names)
for(r in seq_along(var.names)){
row.names(result.matrix)[r] <- paste(r,".",abbreviate(var.names[r],abbreviate), sep = "")
}
}

if(triangle == "both"){
if(c<r){
result.matrix[r,c]<-result.final
result.matrix[c,r]<-result.final
}
###collumn and row names
names(result.matrix) <- as.vector(lapply(var.names, function(x) abbreviate(x,abbreviate)))
row.names(result.matrix) <- as.vector(lapply(var.names, function(x) abbreviate(x,abbreviate)))
}


#leave diagonal blank
for(b in 1:length(var.names)){
result.matrix[b,b+1]<-"-"
result.matrix[b,b]<-"-"
}#diagonal loop end
}#row loop end
}#collumn loop end

if(n.matrix == T){
message("n.matrix == T, therefore matrix of n returned.")
}else{
message("signif at 0.05*; signif at 0.01**")
message("signif at 0.05*; signif at 0.01**; signif at 0.001***")
}
return(result.matrix)
}
Expand Down
15 changes: 8 additions & 7 deletions man/correlatrix.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions man/int.plot.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit ebcc99d

Please sign in to comment.