Description Usage Arguments Details Value Warnings Author(s) See Also Examples
This function provides easy visualization of any given user-requested effect from factorial experiments, including purely within-Ss designs (a.k.a. “repeated measures”), purely between-Ss designs, and mixed within-and-between-Ss designs. By default, Fisher's Least Significant Difference is computed to provide error bars that facilitate visual post-hoc multiple comparisons (see Warning section below).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | ezPlot(
data
, dv
, wid
, within = NULL
, within_full = NULL
, within_covariates = NULL
, between = NULL
, between_full = NULL
, between_covariates = NULL
, x
, do_lines = TRUE
, do_bars = TRUE
, bar_width = NULL
, bar_size = NULL
, split = NULL
, row = NULL
, col = NULL
, to_numeric = NULL
, x_lab = NULL
, y_lab = NULL
, split_lab = NULL
, levels = NULL
, diff = NULL
, reverse_diff = FALSE
, type = 2
, dv_levs = NULL
, dv_labs = NULL
, y_free = FALSE
, print_code = FALSE
)
|
data |
Data frame containing the data to be analyzed. OR, if multiple values are specified in |
dv |
.() object specifying the column in |
wid |
.() object specifying the column in |
within |
Names of columns in |
within_full |
Same as within, but intended to specify the full within-Ss design in cases where the data have not already been collapsed to means per condition specified by |
within_covariates |
Names of columns in |
between |
Names of columns in |
between_full |
Same as |
between_covariates |
Names of columns in |
x |
.() object specifying the variable to plot on the x-axis. |
do_lines |
Logical. If TRUE, lines will be plotted connecting groups of points. |
do_bars |
Logical. If TRUE, error bars will be plotted. |
bar_width |
Optional numeric value specifying custom widths for the error bar hat. |
bar_size |
Optional numeric value or vector specifying custom size of the error bars. |
split |
Optional .() object specifying a variable by which to split the data into different shapes/colors (and line types, if do_lines==TRUE). |
row |
Optional .() object specifying a variable by which to split the data into rows. |
col |
Optional .() object specifying a variable by which to split the data into columns. |
to_numeric |
Optional .() object specifying any variables that need to be converted to the numeric class before plotting. |
x_lab |
Optional character string specifying the x-axis label. |
y_lab |
Optional character string specifying the y-axis label. |
split_lab |
Optional character string specifying the key label. |
levels |
Optional named list where each item name matches a factored column in |
diff |
Optional .() object specifying a 2-level within-Ss varbiable to collapse to a difference score. |
reverse_diff |
Logical. If TRUE, triggers reversal of the difference collapse requested by |
type |
Numeric value (either |
dv_levs |
Optional character vector specifying the factor ordering of multiple values specified in |
dv_labs |
Optional character vector specifying new factor labels for each of the multiple values specified in |
y_free |
Logical. If TRUE, then rows will permit different y-axis scales. |
print_code |
Logical. If TRUE, the code for creating the ggplot2 plot object is printed and the data to be plotted is returned instead of the plot itself. |
ANCOVA is implemented by first regressing the DV against each covariate (after collapsing the data to the means of that covariate's levels per subject) and subtracting from the raw data the fitted values from this regression (then adding back the mean to maintain scale). These regressions are computed across Ss in the case of between-Ss covariates and computed within each Ss in the case of within-Ss covariates.
Fisher's Least Significant Difference is computed as sqrt(2)*qt(.975,DFd)*sqrt(MSd/N), where N is taken as the mean N per group in cases of unbalanced designs.
If print_code
is FALSE, printable/modifiable ggplot2 object is returned. If print_code
is TRUE, the code for creating the ggplot2 plot object is printed and the data to be plotted is returned instead of the plot itself.
Prior to running (though after obtaining running ANCOVA regressions as described in the details
section), dv
is collapsed to a mean for each cell defined by the combination of wid
and any variables supplied to within
and/or between
and/or diff
. Users are warned that while convenient when used properly, this automatic collapsing can lead to inconsistencies if the pre-collapsed data are unbalanced (with respect to cells in the full design) and only the partial design is supplied to ezANOVA
. When this is the case, use within_full
to specify the full design to ensure proper automatic collapsing.
The default error bars are Fisher's Least Significant Difference for the plotted effect, facilitating visual post-hoc multiple comparisons. To obtain accurate FLSDs when only a subset of the full between-Ss design is supplied to between
, the full design must be supplied to between_full
. Also note that in the context of mixed within-and-between-Ss designs, the computed FLSD bars can only be used for within-Ss comparisons.
Michael A. Lawrence mike.lwrnc@gmail.com
Visit the ez
development site at http://github.com/mike-lawrence/ez
for the bug/issue tracker and the link to the mailing list.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 | #Read in the ANT data (see ?ANT).
data(ANT)
head(ANT)
ezPrecis(ANT)
## Not run:
#Run an ANOVA on the mean correct RT data.
mean_rt_anova = ezANOVA(
data = ANT[ANT$error==0,]
, dv = .(rt)
, wid = .(subnum)
, within = .(cue,flank)
, between = .(group)
)
#Show the ANOVA and assumption tests.
print(mean_rt_anova)
## End(Not run)
#Plot the main effect of group.
group_plot = ezPlot(
data = ANT[ANT$error==0,]
, dv = .(rt)
, wid = .(subnum)
, between = .(group)
, x = .(group)
, do_lines = FALSE
, x_lab = 'Group'
, y_lab = 'RT (ms)'
)
#Show the plot.
print(group_plot)
#tweak the plot
# group_plot = group_plot +
# theme(
# panel.grid.major = element_blank()
# , panel.grid.minor = element_blank()
# )
# print(group_plot)
#use the "print_code" argument to print the
# code for creating the plot and return the
# data to plot. This is useful when you want
# to learn how to create plots from scratch
# (which can in turn be useful when you can't
# get a combination of ezPlot and tweaking to
# achieve what you want)
group_plot_data = ezPlot(
data = ANT[ANT$error==0,]
, dv = .(rt)
, wid = .(subnum)
, between = .(group)
, x = .(group)
, do_lines = FALSE
, x_lab = 'Group'
, y_lab = 'RT (ms)'
, print_code = TRUE
)
#Re-plot the main effect of group, using the levels
##argument to re-arrange/rename levels of group
group_plot = ezPlot(
data = ANT[ANT$error==0,]
, dv = .(rt)
, wid = .(subnum)
, between = .(group)
, x = .(group)
, do_lines = FALSE
, x_lab = 'Group'
, y_lab = 'RT (ms)'
, levels = list(
group = list(
new_order = c('Treatment','Control')
, new_names = c('Treatment\nGroup','Control\nGroup')
)
)
)
#Show the plot.
print(group_plot)
#Plot the cue*flank interaction.
cue_by_flank_plot = ezPlot(
data = ANT[ANT$error==0,]
, dv = .(rt)
, wid = .(subnum)
, within = .(cue,flank)
, x = .(flank)
, split = .(cue)
, x_lab = 'Flanker'
, y_lab = 'RT (ms)'
, split_lab = 'Cue'
)
#Show the plot.
print(cue_by_flank_plot)
#Plot the cue*flank interaction by collapsing the cue effect to
##the difference between None and Double
cue_by_flank_plot2 = ezPlot(
data = ANT[ ANT$error==0 & (ANT$cue %in% c('None','Double')) ,]
, dv = .(rt)
, wid = .(subnum)
, within = .(flank)
, diff = .(cue)
, reverse_diff = TRUE
, x = .(flank)
, x_lab = 'Flanker'
, y_lab = 'RT Effect (None - Double, ms)'
)
#Show the plot.
print(cue_by_flank_plot2)
#Plot the group*cue*flank interaction.
group_by_cue_by_flank_plot = ezPlot(
data = ANT[ANT$error==0,]
, dv = .(rt)
, wid = .(subnum)
, within = .(cue,flank)
, between = .(group)
, x = .(flank)
, split = .(cue)
, col = .(group)
, x_lab = 'Flanker'
, y_lab = 'RT (ms)'
, split_lab = 'Cue'
)
#Show the plot.
print(group_by_cue_by_flank_plot)
#Plot the group*cue*flank interaction in both error rate and mean RT.
group_by_cue_by_flank_plot_both = ezPlot(
data = list(
ANT
, ANT[ANT$error==0,]
)
, dv = .(error,rt)
, wid = .(subnum)
, within = .(cue,flank)
, between = .(group)
, x = .(flank)
, split = .(cue)
, col = .(group)
, x_lab = 'Flanker'
, split_lab = 'Cue'
, dv_labs = c('ER (%)', 'RT (ms)')
, y_free = TRUE
)
#Show the plot.
print(group_by_cue_by_flank_plot_both)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.