jmv

Paired Samples Contingency Tables

McNemar test

Example usage

dat <- data.frame(
    `1st survey` = c('Approve', 'Approve', 'Disapprove', 'Disapprove'),
    `2nd survey` = c('Approve', 'Disapprove', 'Approve', 'Disapprove'),
    `Counts` = c(794, 150, 86, 570),
    check.names=FALSE)

contTablesPaired(dat, rows = '1st survey', cols = '2nd survey', counts = 'Counts')

#
#  Paired Samples Contingency Tables
#
#  Contingency Tables
#  ────────────────────────────────────────────────
#    1st survey    Approve    Disapprove    Total
#  ────────────────────────────────────────────────
#    Approve           794           150      944
#    Disapprove         86           570      656
#    Total             880           720     1600
#  ────────────────────────────────────────────────
#
#
#  McNemar Test
#  ─────────────────────────────────────────────────────
#                                Value    df    p
#  ─────────────────────────────────────────────────────
#    χ²                           17.4     1    < .001
#    χ² continuity correction     16.8     1    < .001
#  ─────────────────────────────────────────────────────
#

Arguments

data the data as a data frame
rows a string naming the variable to use as the rows in the contingency table
cols a string naming the variable to use as the columns in the contingency table
counts a string naming the variable to use as counts, or NULL if each row represents a single observation
pcRow TRUE or FALSE (default), provide row percentages
pcCol TRUE or FALSE (default), provide column percentages

Returns

A results object containing:

results$freqs a table
results$test a table

Tables can be converted to data frames with asDF or as.data.frame(). For example:

results$freqs$asDF

as.data.frame(results$freqs)