| Title: | Create Publication Quality Tables and Plots |
|---|---|
| Description: | Create publication quality plots and tables for Item Response Theory and Classical Test theory based item analysis, exploratory and confirmatory factor analysis. |
| Authors: | Mushfiqul Anwar Siraji [aut, cre] (ORCID: <https://orcid.org/0000-0003-0127-9982>) |
| Maintainer: | Mushfiqul Anwar Siraji <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 1.0.0 |
| Built: | 2026-05-18 07:32:56 UTC |
| Source: | https://github.com/masiraji/tabledown |
This function will help you to calculate the time a person spent in bed based on their sleep log. This type of calculation is very common in sleep research. However, as one can guess, working with dates in R is a bit tricky. This function will ease the task. More importantly you do not require to entry the dates to calculate bed time. Just wake up time and time to go to bed is enough (24 hour format).
bedTime(x, y)bedTime(x, y)
x |
A vector containing time to do to bed. |
y |
A vector containing time of wake. |
Calculates time spent in bed in hours. Output class is numeric.
#Please use 24 hour format. #Easiest way is to enter the data as character. bed <-c("20:00", "21:00", "23:00") wake <-c("6:00", "7:00", "8:00") bedtime <- bedTime(bed, wake)#Please use 24 hour format. #Easiest way is to enter the data as character. bed <-c("20:00", "21:00", "23:00") wake <-c("6:00", "7:00", "8:00") bedtime <- bedTime(bed, wake)
This function will create publication worthy tables with CFA fit indices from lavaan class object.
cfa.tab(x, robust = FALSE)cfa.tab(x, robust = FALSE)
x |
A lavaan class object. |
robust |
If TRUE, will provide robust fit indices when applicable instead of the default indices. |
Often researchers are required to show fit indices from several CFA models. This function will create publication worthy tables with CFA fit indices from several lavaan class objects. #' To run this function successfully one need to provide at least two lavaan objects. This command supports up-to five lavaan models.
cfa.tab.multi(x, y, z = NULL, a = NULL, b = NULL, robust = FALSE)cfa.tab.multi(x, y, z = NULL, a = NULL, b = NULL, robust = FALSE)
x |
first object of class lavaan (Mandatory). |
y |
second object of class lavaan (Mandatory). |
z |
third object of class lavaan (Optional). |
a |
fourth object of class lavaan (Optional). |
b |
fifth object of class lavaan (Optional). |
robust |
If TRUE, will provide robust fit indices when applicable instead of the default indices. |
This function will create a publication ready essential descriptive table for item analysis. Normality is tested using shapiro.test from base stats with Bonferroni Correction.
des.tab(df, reverse = FALSE)des.tab(df, reverse = FALSE)
df |
A data frame. |
reverse |
If TRUE, will provide indicate which items had a negative correlation and reverse them |
Returns a summary table of descriptives in a data frame structure.
data <- tabledown::Rotter[, 11:31] table <- des.tab(data)data <- tabledown::Rotter[, 11:31] table <- des.tab(data)
This function will create publication worthy factor tables from objects created from psych pack. I have came across this beautiful piece of codes at https://www.anthonyschmidt.co/post/2020-09-27-efa-tables-in-r/ and modified it a bit.
fac.tab(x, cut, complexity = TRUE)fac.tab(x, cut, complexity = TRUE)
x |
A psych package object. |
cut |
The value under which all factor loading will be suppressed. |
complexity |
To add complexity parameters. |
A publication ready summary table for the Factor analysis conducted by psych Package. Output structure is data frame.
data <- tabledown::Rotter[, 11:31] correlations <- psych::polychoric(data, correct = 0) fa.5F.1 <- psych::fa(r=correlations$rho, nfactors = 5, fm= "pa",rotate ="varimax", residuals = TRUE, SMC = TRUE, n.obs =428) table <- fac.tab(fa.5F.1, .3) #always save the output into an objectdata <- tabledown::Rotter[, 11:31] correlations <- psych::polychoric(data, correct = 0) fa.5F.1 <- psych::fa(r=correlations$rho, nfactors = 5, fm= "pa",rotate ="varimax", residuals = TRUE, SMC = TRUE, n.obs =428) table <- fac.tab(fa.5F.1, .3) #always save the output into an object
This is the structural validation data of Bangla Five Facet Mindfulness Questionnaire
FFMQ.CFAFFMQ.CFA
A data frame with 277 rows and 47 variables:
IDdouble COLUMN_DESCRIPTION
Gendercharacter COLUMN_DESCRIPTION
Educationcharacter COLUMN_DESCRIPTION
Education Yearsdouble COLUMN_DESCRIPTION
Incomedouble COLUMN_DESCRIPTION
Professioncharacter COLUMN_DESCRIPTION
Marital Statuscharacter COLUMN_DESCRIPTION
Social_statusdouble COLUMN_DESCRIPTION
item1double COLUMN_DESCRIPTION
item2double COLUMN_DESCRIPTION
Ritem3double COLUMN_DESCRIPTION
item4double COLUMN_DESCRIPTION
Ritem5double COLUMN_DESCRIPTION
item6double COLUMN_DESCRIPTION
item7double COLUMN_DESCRIPTION
Ritem8double COLUMN_DESCRIPTION
item9double COLUMN_DESCRIPTION
Ritem10double COLUMN_DESCRIPTION
item11double COLUMN_DESCRIPTION
Ritem12double COLUMN_DESCRIPTION
Ritem13double COLUMN_DESCRIPTION
Ritem14double COLUMN_DESCRIPTION
item15double COLUMN_DESCRIPTION
Ritem16double COLUMN_DESCRIPTION
Ritem17double COLUMN_DESCRIPTION
Ritem18double COLUMN_DESCRIPTION
item19double COLUMN_DESCRIPTION
item20double COLUMN_DESCRIPTION
item21double COLUMN_DESCRIPTION
Ritem22double COLUMN_DESCRIPTION
Ritem23double COLUMN_DESCRIPTION
item24double COLUMN_DESCRIPTION
Ritem25double COLUMN_DESCRIPTION
item26double COLUMN_DESCRIPTION
item27double COLUMN_DESCRIPTION
Ritem28double COLUMN_DESCRIPTION
item29double COLUMN_DESCRIPTION
Ritem30double COLUMN_DESCRIPTION
item31double COLUMN_DESCRIPTION
item32double COLUMN_DESCRIPTION
item33double COLUMN_DESCRIPTION
Ritem34double COLUMN_DESCRIPTION
Ritem35double COLUMN_DESCRIPTION
item36double COLUMN_DESCRIPTION
item37double COLUMN_DESCRIPTION
Ritem38double COLUMN_DESCRIPTION
Ritem39double COLUMN_DESCRIPTION
https://github.com/masiraji/tabledown/tree/main/data-raw
Correlational based Valididity evidence of Bangla FFMQ
FFMQ.ValFFMQ.Val
A data frame with 255 rows and 106 variables:
iddouble COLUMN_DESCRIPTION
Agedouble COLUMN_DESCRIPTION
Genderdouble COLUMN_DESCRIPTION
Education Yearsdouble COLUMN_DESCRIPTION
Professioncharacter COLUMN_DESCRIPTION
Marital Statuscharacter COLUMN_DESCRIPTION
Social_Statusdouble COLUMN_DESCRIPTION
item1double COLUMN_DESCRIPTION
item2double COLUMN_DESCRIPTION
Ritem3double COLUMN_DESCRIPTION
item4double COLUMN_DESCRIPTION
Ritem5double COLUMN_DESCRIPTION
item6double COLUMN_DESCRIPTION
item7double COLUMN_DESCRIPTION
Ritem8double COLUMN_DESCRIPTION
item9double COLUMN_DESCRIPTION
Ritem10double COLUMN_DESCRIPTION
item11double COLUMN_DESCRIPTION
Ritem12double COLUMN_DESCRIPTION
Ritem13double COLUMN_DESCRIPTION
Ritem14double COLUMN_DESCRIPTION
item15double COLUMN_DESCRIPTION
Ritem16double COLUMN_DESCRIPTION
Ritem17double COLUMN_DESCRIPTION
Ritem18double COLUMN_DESCRIPTION
item19double COLUMN_DESCRIPTION
item20double COLUMN_DESCRIPTION
item21double COLUMN_DESCRIPTION
Ritem22double COLUMN_DESCRIPTION
Ritem23double COLUMN_DESCRIPTION
item24double COLUMN_DESCRIPTION
Ritem25double COLUMN_DESCRIPTION
item26double COLUMN_DESCRIPTION
item27double COLUMN_DESCRIPTION
Ritem28double COLUMN_DESCRIPTION
item29double COLUMN_DESCRIPTION
Ritem30double COLUMN_DESCRIPTION
item31double COLUMN_DESCRIPTION
item32double COLUMN_DESCRIPTION
item33double COLUMN_DESCRIPTION
Ritem34double COLUMN_DESCRIPTION
Ritem35double COLUMN_DESCRIPTION
item36double COLUMN_DESCRIPTION
item37double COLUMN_DESCRIPTION
Ritem38double COLUMN_DESCRIPTION
Ritem39double COLUMN_DESCRIPTION
EI1character COLUMN_DESCRIPTION
EI2character COLUMN_DESCRIPTION
EI3character COLUMN_DESCRIPTION
EI4character COLUMN_DESCRIPTION
EI5character COLUMN_DESCRIPTION
EI6character COLUMN_DESCRIPTION
EI7character COLUMN_DESCRIPTION
EI8character COLUMN_DESCRIPTION
EI9character COLUMN_DESCRIPTION
EI10character COLUMN_DESCRIPTION
EI11character COLUMN_DESCRIPTION
EI12character COLUMN_DESCRIPTION
EI13character COLUMN_DESCRIPTION
EI14character COLUMN_DESCRIPTION
EI15character COLUMN_DESCRIPTION
EI16character COLUMN_DESCRIPTION
EI17character COLUMN_DESCRIPTION
EI18character COLUMN_DESCRIPTION
EI19character COLUMN_DESCRIPTION
EI20character COLUMN_DESCRIPTION
EI21character COLUMN_DESCRIPTION
EI22character COLUMN_DESCRIPTION
EI23character COLUMN_DESCRIPTION
EI24character COLUMN_DESCRIPTION
EI25character COLUMN_DESCRIPTION
EI26character COLUMN_DESCRIPTION
EI27character COLUMN_DESCRIPTION
EI28character COLUMN_DESCRIPTION
EI29character COLUMN_DESCRIPTION
EI30character COLUMN_DESCRIPTION
EI31character COLUMN_DESCRIPTION
EI32character COLUMN_DESCRIPTION
EI33character COLUMN_DESCRIPTION
EI34character COLUMN_DESCRIPTION
O1character COLUMN_DESCRIPTION
O2character COLUMN_DESCRIPTION
O3character COLUMN_DESCRIPTION
O4character COLUMN_DESCRIPTION
O5character COLUMN_DESCRIPTION
O6character COLUMN_DESCRIPTION
O7character COLUMN_DESCRIPTION
O8character COLUMN_DESCRIPTION
O9character COLUMN_DESCRIPTION
O10character COLUMN_DESCRIPTION
E1character COLUMN_DESCRIPTION
E2character COLUMN_DESCRIPTION
E3character COLUMN_DESCRIPTION
E4character COLUMN_DESCRIPTION
E5character COLUMN_DESCRIPTION
E6character COLUMN_DESCRIPTION
E7character COLUMN_DESCRIPTION
E8character COLUMN_DESCRIPTION
N1character COLUMN_DESCRIPTION
N2character COLUMN_DESCRIPTION
N3character COLUMN_DESCRIPTION
N4character COLUMN_DESCRIPTION
N5character COLUMN_DESCRIPTION
N6character COLUMN_DESCRIPTION
N7character COLUMN_DESCRIPTION
N8character COLUMN_DESCRIPTION
https://github.com/masiraji/tabledown/tree/main/data-raw
Demo project breakdown to create Gantt
GanttGantt
A data frame with 25 rows and 4 variables:
wpcharacter Main Component
activitycharacter Activities
start_datecharacter Start Date
end_datecharacter End Date
https://github.com/masiraji/tabledown/tree/main/data-raw
This function will create publication worthy Item Response Theory based item characteristic plot using ggplot2 from objects created from mirt pack. Using ggplot2 will enable the user to modify the item characteristic plot.
ggicc(model, item, theta)ggicc(model, item, theta)
model |
A mirt package fitted object. |
item |
Item number (i.e. 1,2,3,4). |
theta |
Theta range. Put only one number. Theta =3 will be considered as theta range (-3 to 3). |
A publication quality item characteristic plot. Output object is a ggplot object.
data <- tabledown::Rotter[, 11:31] model <- mirt::mirt(data, model = 1, itemtype = '2PL', SE = TRUE, Se.type = 'MHRM') plot <- tabledown::ggicc(model, 1, 3)data <- tabledown::Rotter[, 11:31] model <- mirt::mirt(data, model = 1, itemtype = '2PL', SE = TRUE, Se.type = 'MHRM') plot <- tabledown::ggicc(model, 1, 3)
This function will create publication worthy Item Response Theory based item information plot. using ggplot2 from objects created from mirt pack.
ggiteminfo(model, item, theta)ggiteminfo(model, item, theta)
model |
A mirt package fitted object. |
item |
Item number (i.e. 1,2,3,4). |
theta |
Theta range. Put only one number. Theta =3 will be considered as theta range (-3 to 3). |
A publication quality item information plot.Output object is a ggplot object.
data <- tabledown::Rotter[, 11:31] model <- mirt::mirt(data, model = 1, itemtype = '2PL') plot <- ggiteminfo(model, 1, 3)data <- tabledown::Rotter[, 11:31] model <- mirt::mirt(data, model = 1, itemtype = '2PL') plot <- ggiteminfo(model, 1, 3)
This function will create publication worthy Item Response Theory based based reliability plot with standard error using ggplot2 from objects created from mirt pack. Using ggplot2 will enable the user to modify the Item plot.
ggreliability(dataframe, model)ggreliability(dataframe, model)
dataframe |
your data. |
model |
A mirt package fitted object. |
A publication quality reliability plot (dashed line). Output object is a ggplot object.
data <- tabledown::Rotter[, 11:31] model <- mirt::mirt(data, model = 1, itemtype = '2PL') plot <- ggreliability(data, model)data <- tabledown::Rotter[, 11:31] model <- mirt::mirt(data, model = 1, itemtype = '2PL') plot <- ggreliability(data, model)
This function will create Item Response Theory based based reliability plot with standard error using ggplot2 and plotly from objects created from mirt pack. Using ggplot2 will enable the user to modify the Item plot.
ggreliability_plotly(dataframe, model)ggreliability_plotly(dataframe, model)
dataframe |
your data. |
model |
A mirt package fitted object. |
A publication quality reliability plot (dashed line). Output object is a ggplot object.
data <- tabledown::Rotter[, 11:31] model <- mirt::mirt(data, model = 1, itemtype = '2PL') plot <- ggreliability_plotly(data, model)data <- tabledown::Rotter[, 11:31] model <- mirt::mirt(data, model = 1, itemtype = '2PL') plot <- ggreliability_plotly(data, model)
This function will create publication worthy Item Response Theory based Test information plot using ggplot2 from objects created from mirt pack. Using ggplot2 will enable the user to modify the Item plot.
ggtestinfo(dataframe, model)ggtestinfo(dataframe, model)
dataframe |
your data. |
model |
A mirt package fitted object. |
A publication quality Test information plot. Output object is a ggplot object.
data <- tabledown::Rotter[, 11:31] model <- mirt::mirt(data, model = 1, itemtype = '2PL') plot <- ggtestinfo(data, model)data <- tabledown::Rotter[, 11:31] model <- mirt::mirt(data, model = 1, itemtype = '2PL') plot <- ggtestinfo(data, model)
This function will create publication worthy Item Response Theory based Test information plot with standard error using ggplot2 from objects created from mirt pack. Using ggplot2 will enable the user to modify the Item plot.
ggtestinfo_se(dataframe, model)ggtestinfo_se(dataframe, model)
dataframe |
your data. |
model |
A mirt package fitted object. |
A publication quality Test information plot with standard error (dashed line). Output object is a ggplot object.
data <- tabledown::Rotter[, 11:31] model <- mirt::mirt(data, model = 1, itemtype = '2PL') plot <- ggtestinfo(data, model)data <- tabledown::Rotter[, 11:31] model <- mirt::mirt(data, model = 1, itemtype = '2PL') plot <- ggtestinfo(data, model)
This function will create Item Response Theory based Test information plot with standard error using ggplot2 and plotly from objects created from mirt pack. Using ggplot2 will enable the user to modify the Item plot.
ggtestinfo_se_ploty(dataframe, model)ggtestinfo_se_ploty(dataframe, model)
dataframe |
your data. |
model |
A mirt package fitted object. |
A publication quality Test information plot with standard error (dashed line). Output object is a ggplot object.
data <- tabledown::Rotter[, 11:31] model <- mirt::mirt(data, model = 1, itemtype = '2PL') plot <- ggtestinfo_se_ploty(data, model)data <- tabledown::Rotter[, 11:31] model <- mirt::mirt(data, model = 1, itemtype = '2PL') plot <- ggtestinfo_se_ploty(data, model)
This function will gtExtra package friendly data summary using the datafrmae provided psych pack.
gt_tab(dataframe, recode_code)gt_tab(dataframe, recode_code)
dataframe |
Dataframe with all items. |
recode_code |
Recode key |
A publication ready descriptive summary table in png format.
data <- tabledown::FFMQ.CFA[, c(9,10,12,14)] recode_code <- c( "1" = "Never or very rarely true", "2" = "Rarely true", "3"= "Sometimes true","4" = "Often true","5" = "Very often or always true") sample_tab <- gt_tab(data,recode_code)data <- tabledown::FFMQ.CFA[, c(9,10,12,14)] recode_code <- c( "1" = "Never or very rarely true", "2" = "Rarely true", "3"= "Sometimes true","4" = "Often true","5" = "Very often or always true") sample_tab <- gt_tab(data,recode_code)
This function will compute normality on entire data set. Sometime in dlookr package p values turns out to be null thus failing to test normality of the data set. This is a good alternative of dlookr function. Here normality is tested using shapiro.test from base stats.
normality.loop(df, bonf = TRUE, alpha = 0.05)normality.loop(df, bonf = TRUE, alpha = 0.05)
df |
A data frame. |
bonf |
If TRUE a bonferonni correction will be conducted. |
alpha |
Desired alpha. |
Provides normality tests results for all columns in a wide data frame in a list format.
data <- tabledown::Rotter[, 11:31] normality.loop(data)data <- tabledown::Rotter[, 11:31] normality.loop(data)
This is the validation data of Bangla Rotter's Internal and External Scale.
RotterRotter
A data frame with 478 rows and 91 variables:
iddouble Id
samplecharacter EFA or CEA
Agedouble Age
Gendercharacter Gender
Educational Statuscharacter Educational Status
Education Yearsdouble COLUMN_DESCRIPTION
Incomedouble COLUMN_DESCRIPTION
Religiondouble COLUMN_DESCRIPTION
Marital Statusdouble COLUMN_DESCRIPTION
Social Stancedouble COLUMN_DESCRIPTION
item2double COLUMN_DESCRIPTION
item3double COLUMN_DESCRIPTION
item4double COLUMN_DESCRIPTION
item5double COLUMN_DESCRIPTION
item6double COLUMN_DESCRIPTION
item7double COLUMN_DESCRIPTION
item9double COLUMN_DESCRIPTION
item10double COLUMN_DESCRIPTION
item11double COLUMN_DESCRIPTION
item12double COLUMN_DESCRIPTION
item13double COLUMN_DESCRIPTION
item15double COLUMN_DESCRIPTION
item16double COLUMN_DESCRIPTION
item17double COLUMN_DESCRIPTION
item18double COLUMN_DESCRIPTION
item20double COLUMN_DESCRIPTION
item21double COLUMN_DESCRIPTION
item22double COLUMN_DESCRIPTION
item23double COLUMN_DESCRIPTION
item25double COLUMN_DESCRIPTION
item26double COLUMN_DESCRIPTION
item28double COLUMN_DESCRIPTION
item29double COLUMN_DESCRIPTION
O1double COLUMN_DESCRIPTION
O2double COLUMN_DESCRIPTION
O3double COLUMN_DESCRIPTION
O4double COLUMN_DESCRIPTION
O5double COLUMN_DESCRIPTION
O6double COLUMN_DESCRIPTION
O7double COLUMN_DESCRIPTION
O8double COLUMN_DESCRIPTION
O9double COLUMN_DESCRIPTION
O10double COLUMN_DESCRIPTION
Total_Opennesdouble COLUMN_DESCRIPTION
E1double COLUMN_DESCRIPTION
E2double COLUMN_DESCRIPTION
E3double COLUMN_DESCRIPTION
E4double COLUMN_DESCRIPTION
E5double COLUMN_DESCRIPTION
E6double COLUMN_DESCRIPTION
E7double COLUMN_DESCRIPTION
E8double COLUMN_DESCRIPTION
Total_Extrodouble COLUMN_DESCRIPTION
N1double COLUMN_DESCRIPTION
N2double COLUMN_DESCRIPTION
N3double COLUMN_DESCRIPTION
N4double COLUMN_DESCRIPTION
N5double COLUMN_DESCRIPTION
N6double COLUMN_DESCRIPTION
N7double COLUMN_DESCRIPTION
N8double COLUMN_DESCRIPTION
Total_Neurodouble COLUMN_DESCRIPTION
DIR1double COLUMN_DESCRIPTION
DIR2double COLUMN_DESCRIPTION
DI3double COLUMN_DESCRIPTION
DIR4double COLUMN_DESCRIPTION
DI5double COLUMN_DESCRIPTION
DIR6double COLUMN_DESCRIPTION
DI7double COLUMN_DESCRIPTION
DIR8double COLUMN_DESCRIPTION
DI9double COLUMN_DESCRIPTION
DI10double COLUMN_DESCRIPTION
DIR11double COLUMN_DESCRIPTION
DI12double COLUMN_DESCRIPTION
DI13double COLUMN_DESCRIPTION
DIR14double COLUMN_DESCRIPTION
DI15double COLUMN_DESCRIPTION
DI16double COLUMN_DESCRIPTION
DIR17double COLUMN_DESCRIPTION
DI18double COLUMN_DESCRIPTION
DIR19double COLUMN_DESCRIPTION
DI20double COLUMN_DESCRIPTION
DI21double COLUMN_DESCRIPTION
DIR22double COLUMN_DESCRIPTION
DIR23double COLUMN_DESCRIPTION
DIR24double COLUMN_DESCRIPTION
DI25double COLUMN_DESCRIPTION
DIR26double COLUMN_DESCRIPTION
DIR27double COLUMN_DESCRIPTION
DI28double COLUMN_DESCRIPTION
DI_Totaldouble COLUMN_DESCRIPTION
https://github.com/masiraji/tabledown/tree/main/data-raw
Additional demo data for GanTT
SpotSpot
A data frame with 29 rows and 3 variables:
activitycharacter Activity
spot_typecharacter Progress Status
spot_datecharacter Date of Reporting Progress
https://github.com/masiraji/tabledown/tree/main/data-raw
The tabledown package provides necessary data frames used throughout the book and some neat functions.
Rotter: Psychometric validation data of Bangla Rotter's Internal- External Scale.
Gantt and Spot: Two sample data-frames for creating project management Gantt chart.
FFMQ.CFA: Structural Validation data of Bangla Five Factor Mindfulness Questionnaire.
FFMQ.Val:Correlational Validity evidences of Bangla Five Factor Mindfulness Questionnaire.
This packages includes some neat and useful functions to create tables and figures suitable for journal submission:
fac.tab(): Creates a publication ready table from the output of "psych" package based factor analysis.
des.tab(): Creates a publication ready descriptive table of Item analysis with the reporting of normality assumptions.
normality.loop(): Compute normality test on the whole data frame. No grouping variable required.
bedTime(): Calculate total time spent in bed from the sleep log entry.
cfa.tab():Creates a table with necessary fit indices from a "lavaan" class objects.
cfa.tab/multi():creates a table with necessary fit indices from several lavaan class objects.
ggicc: Creates a ggplot2 based publication ready Item Characteristics Curve from the "mirt" package based item response theory estimations.
ggiteminfo: Creates a ggplot2 based publication ready Item Information Curve from the "mirt" package based item response theory estimations.
ggtestinfo: Creates a ggplot2 based publication ready Test Information Curve from the "mirt" package based item response theory estimations.
ggtestinfo_se: Creates a ggplot2 based publication ready Test Information Curve with standard error from the "mirt" package based item response theory estimations. It is advisable that you load tidyverse along with tabledown