This summarises the use of my shiny apps (at https://shiny.psyctc.org/). It will evolve a bit through 2024 as, I hope, use increases.
Info | Value |
---|---|
First date in data | 2024-02-07 |
Last date in data | 2024-05-16 |
This analysis time/date | 03:13 on 17/05/2024 |
Number of days | 99 |
Number of sessions | 810 |
Mean sessions per day | 8.18 |
I am not using any way to separate different users and session is per app, so if someone used multiple apps during one visit to the server, each app used is counts as a separate session.
Here’s the number of times each app has been used during that period.
App | Sessions | First used | Last used | Days available | Sessions per day | Days used | % days used |
---|---|---|---|---|---|---|---|
RCI1 | 248 | 2024-02-07 | 2024-05-16 | 100 | 2.480 | 60 | 60.0% |
CSC1 | 166 | 2024-02-07 | 2024-05-15 | 100 | 1.660 | 59 | 59.0% |
ECDFplot | 75 | 2024-02-07 | 2024-05-13 | 100 | 0.750 | 23 | 23.0% |
CORE-OM_scoring | 54 | 2024-04-16 | 2024-05-16 | 31 | 1.742 | 28 | 90.3% |
COREpapers1 | 54 | 2024-05-11 | 2024-05-16 | 6 | 9.000 | 6 | 100.0% |
Histogram_and_summary1 | 33 | 2024-03-25 | 2024-05-06 | 53 | 0.623 | 14 | 26.4% |
CIproportion | 22 | 2024-02-07 | 2024-05-05 | 100 | 0.220 | 16 | 16.0% |
Cronbach1Feldt | 22 | 2024-02-07 | 2024-05-16 | 100 | 0.220 | 17 | 17.0% |
CIcorrelation | 18 | 2024-02-07 | 2024-05-16 | 100 | 0.180 | 16 | 16.0% |
CIdiff2proportions | 15 | 2024-02-07 | 2024-05-06 | 100 | 0.150 | 8 | 8.0% |
CImean | 13 | 2024-02-07 | 2024-05-08 | 100 | 0.130 | 12 | 12.0% |
Screening1 | 13 | 2024-02-07 | 2024-05-01 | 100 | 0.130 | 9 | 9.0% |
plotCIPearson | 11 | 2024-02-07 | 2024-05-16 | 100 | 0.110 | 8 | 8.0% |
CISD | 9 | 2024-02-07 | 2024-05-07 | 100 | 0.090 | 8 | 8.0% |
Spearman-Brown | 9 | 2024-05-03 | 2024-05-13 | 14 | 0.643 | 5 | 35.7% |
g_from_d_and_n | 9 | 2024-02-07 | 2024-05-02 | 100 | 0.090 | 7 | 7.0% |
Gaussian1 | 8 | 2024-03-05 | 2024-05-15 | 73 | 0.110 | 7 | 9.6% |
RCI2 | 8 | 2024-02-07 | 2024-05-16 | 100 | 0.080 | 5 | 5.0% |
Create_univariate_data | 7 | 2024-04-09 | 2024-05-14 | 38 | 0.184 | 6 | 15.8% |
CISpearman | 6 | 2024-02-07 | 2024-05-16 | 100 | 0.060 | 4 | 4.0% |
Bonferroni1 | 5 | 2024-03-24 | 2024-05-13 | 54 | 0.093 | 5 | 9.3% |
CSClookup2a | 5 | 2024-02-07 | 2024-05-16 | 100 | 0.050 | 4 | 4.0% |
The columns of Sessions per day and of Percentage days used are rather misleading as different apps have been available for very different numbers of days. I won’t be able to get a less misleading forest plot of the mean usage per day per app until there has been far more usage than we have had so far so I will maybe add that later in the year.
However, I can get confidence intervals for proportions on what usage we already have so here’s a less misleading forest plot of proportion of the available days on which each app was used. The dotted reference line marks the overall usage as a proportion of days available across all the apps.
Here’s a map of usage per app against dates. The sizes of the points show how many times the app was used on that day. The y axis sorts by first date used and then by descending total number of times used.
That shows that currently (24.iii.24) most of the apps are shown as first being used on the same day (7.ii.2024) which was the first date I set up the app use logging (and I tested all the then existing apps that day so all appear on the day). The most used apps with come lower on the y axis within first use dates.
Here’s the breakdown of sessions per day.
Like the map against time above this shows very clearly one large burst of use after the apps were publicised through the Systemic Research Centre Email list (5.iii.24) and a smaller one after a posting to the IDANET list (9.iii.24).
Breaking that down by app gives me this.
And facetting by app gives this.
Weekday | n | percent |
---|---|---|
Mon | 1,475 | 18% |
Tue | 2,614 | 31% |
Wed | 1,740 | 21% |
Thu | 657 | 8% |
Fri | 561 | 7% |
Sat | 320 | 4% |
Sun | 961 | 12% |
Same sorted!
Weekday | n | percent |
---|---|---|
Tue | 2,614 | 31% |
Wed | 1,740 | 21% |
Mon | 1,475 | 18% |
Sun | 961 | 12% |
Thu | 657 | 8% |
Fri | 561 | 7% |
Sat | 320 | 4% |
I’ve broken this down by hour. The server is to some extent protected behind a proxy at my ISP which is good for forcing https access but it does mean that I don’t know where people come from so this is all UMT (i.e. old “GMT”: internet time). I think it also suggests, assuming that most accesses are during working hours, that most visitors/users are coming to the site from Europe or the Americas.
Hour | n | percent |
---|---|---|
0 | 4 | 0% |
1 | 2 | 0% |
2 | 4 | 0% |
3 | 6 | 1% |
4 | 4 | 0% |
5 | 27 | 3% |
6 | 63 | 8% |
7 | 39 | 5% |
8 | 81 | 10% |
9 | 40 | 5% |
10 | 26 | 3% |
11 | 27 | 3% |
12 | 52 | 6% |
13 | 50 | 6% |
14 | 110 | 14% |
15 | 35 | 4% |
16 | 30 | 4% |
17 | 45 | 6% |
18 | 26 | 3% |
19 | 28 | 3% |
20 | 53 | 7% |
21 | 41 | 5% |
22 | 12 | 1% |
23 | 5 | 1% |
Same sorted.
Hour | n | percent |
---|---|---|
14 | 110 | 14% |
8 | 81 | 10% |
6 | 63 | 8% |
20 | 53 | 7% |
12 | 52 | 6% |
13 | 50 | 6% |
17 | 45 | 6% |
21 | 41 | 5% |
9 | 40 | 5% |
7 | 39 | 5% |
15 | 35 | 4% |
16 | 30 | 4% |
19 | 28 | 3% |
5 | 27 | 3% |
11 | 27 | 3% |
10 | 26 | 3% |
18 | 26 | 3% |
22 | 12 | 1% |
3 | 6 | 1% |
23 | 5 | 1% |
0 | 4 | 0% |
2 | 4 | 0% |
4 | 4 | 0% |
1 | 2 | 0% |
For what little it’s worth, these are the browser IDs picked up by shiny (in descending order of frequency).
Browser | n |
---|---|
Firefox 125 | 131 |
Chrome 124 | 94 |
Firefox 124 | 69 |
Chrome 101 | 67 |
Chrome 122 | 67 |
Chrome 123 | 60 |
Firefox 123 | 44 |
Chrome 86 | 38 |
Firefox 122 | 34 |
Safari 17 | 31 |
Chrome 103 | 28 |
Chrome 100 | 27 |
Chrome 121 | 25 |
Chrome 104 | 21 |
Chrome 102 | 17 |
Chrome 119 | 13 |
Safari 16 | 10 |
Firefox 126 | 8 |
Chrome 112 | 4 |
Safari 15 | 3 |
Chrome 109 | 2 |
Chrome 114 | 2 |
Firefox 102 | 2 |
Opera 109 | 2 |
Chrome 110 | 1 |
Chrome 115 | 1 |
Chrome 117 | 1 |
Chrome 120 | 1 |
Chrome 125 | 1 |
Chrome 94 | 1 |
Firefox 115 | 1 |
Safari 604 | 1 |
I think the numbers are the version number of the browser when the browser reports that. This is more sensible isn’t it?
Browser | n |
---|---|
Chrome | 471 |
Firefox | 289 |
Safari | 45 |
Opera | 2 |
A bit more interesting is the durations of the sessions.
Some sessions don’t have a recorded termination time, currently that’s true for 265, i.e. 32.7% of the sessions. This could include occasional session still active at the time at which the copy of the database was pulled. However, I think most will be where someone leaves the session open. I have capped the sessions at one hour in the analyses below.
So most, as you would expect given the nature of the apps, are sessions lasting only a few minutes.
Where it might be useful to me to know more about the usage I am logging input values for some apps. Here’s the breakdown of the numbers of sessions in which inputs were recorded.
app_name | n | percent |
---|---|---|
COREpapers1 | 3,471 | 60.1% |
CSC1 | 970 | 16.8% |
RCI1 | 729 | 12.6% |
ECDFplot | 136 | 2.4% |
Histogram_and_summary1 | 129 | 2.2% |
CORE-OM_scoring | 128 | 2.2% |
Spearman-Brown | 111 | 1.9% |
Cronbach1Feldt | 26 | 0.4% |
Create_univariate_data | 19 | 0.3% |
CImean | 14 | 0.2% |
CIproportion | 11 | 0.2% |
CIcorrelation | 8 | 0.1% |
CISpearman | 7 | 0.1% |
Screening1 | 5 | 0.1% |
CISD | 4 | 0.1% |
plotCIPearson | 4 | 0.1% |
Gaussian1 | 3 | 0.1% |
CIdiff2proportions | 2 | 0.0% |
RCI2 | 2 | 0.0% |
And here are the variables by app, nVisits is the total number of sessions with recorded inputs for that app, nVars is the number of variables that have been input for that app. Finally, nVals is the number of distinct values that have been input for that variable.
app_name | id | nVisits | nVars | nVals |
---|---|---|---|---|
COREpapers1 | ||||
authName | 3,471 | 55 | 87 | |
date1 | 3,471 | 55 | 39 | |
date2 | 3,471 | 55 | 31 | |
embedded | 3,471 | 55 | 9 | |
filterAssStructure | 3,471 | 55 | 14 | |
filterCORElanguages | 3,471 | 55 | 15 | |
filterCOREmeasures | 3,471 | 55 | 12 | |
filterFormats | 3,471 | 55 | 6 | |
filterGenderCats | 3,471 | 55 | 7 | |
mainPlotDownload-filename | 3,471 | 55 | 3 | |
mainPlotDownload-format | 3,471 | 55 | 1 | |
or | 3,471 | 55 | 4 | |
or2 | 3,471 | 55 | 3 | |
or3 | 3,471 | 55 | 4 | |
or4 | 3,471 | 55 | 3 | |
or5 | 3,471 | 55 | 2 | |
otherMeasure | 3,471 | 55 | 26 | |
otherMeasures_cell_clicked | 3,471 | 55 | 18 | |
otherMeasures_cells_selected | 3,471 | 55 | 11 | |
otherMeasures_columns_selected | 3,471 | 55 | 11 | |
otherMeasures_row_last_clicked | 3,471 | 55 | 5 | |
otherMeasures_rows_all | 3,471 | 55 | 59 | |
otherMeasures_rows_current | 3,471 | 55 | 58 | |
otherMeasures_rows_selected | 3,471 | 55 | 21 | |
otherMeasures_search | 3,471 | 55 | 28 | |
otherMeasures_state | 3,471 | 55 | 62 | |
paperLang | 3,471 | 55 | 11 | |
papers2_cell_clicked | 3,471 | 55 | 34 | |
papers2_cells_selected | 3,471 | 55 | 12 | |
papers2_columns_selected | 3,471 | 55 | 12 | |
papers2_row_last_clicked | 3,471 | 55 | 7 | |
papers2_rows_all | 3,471 | 55 | 84 | |
papers2_rows_current | 3,471 | 55 | 84 | |
papers2_rows_selected | 3,471 | 55 | 33 | |
papers2_search | 3,471 | 55 | 41 | |
papers2_state | 3,471 | 55 | 91 | |
papers_cell_clicked | 3,471 | 55 | 74 | |
papers_cells_selected | 3,471 | 55 | 53 | |
papers_columns_selected | 3,471 | 55 | 53 | |
papers_row_last_clicked | 3,471 | 55 | 14 | |
papers_rows_all | 3,471 | 55 | 643 | |
papers_rows_current | 3,471 | 55 | 645 | |
papers_rows_selected | 3,471 | 55 | 107 | |
papers_search | 3,471 | 55 | 59 | |
papers_state | 3,471 | 55 | 647 | |
reqEmpCOREdata | 3,471 | 55 | 15 | |
reqOA | 3,471 | 55 | 12 | |
reqOpenData | 3,471 | 55 | 5 | |
tabSelected | 3,471 | 55 | 101 | |
therOrGen | 3,471 | 55 | 25 | |
vecAssStructure | 3,471 | 55 | 29 | |
vecCORElanguages | 3,471 | 55 | 7 | |
vecFormats | 3,471 | 55 | 5 | |
vecGenderCats | 3,471 | 55 | 7 | |
vecWhichCOREused | 3,471 | 55 | 22 | |
CSC1 | ||||
SDHS | 970 | 7 | 191 | |
SDNHS | 970 | 7 | 194 | |
dp | 970 | 7 | 21 | |
maxPoss | 970 | 7 | 105 | |
meanHS | 970 | 7 | 207 | |
meanNHS | 970 | 7 | 218 | |
minPoss | 970 | 7 | 34 | |
RCI1 | ||||
SD | 729 | 8 | 362 | |
ci | 729 | 8 | 21 | |
compute | 729 | 8 | 134 | |
dp | 729 | 8 | 2 | |
generate | 729 | 8 | 5 | |
max | 729 | 8 | 2 | |
min | 729 | 8 | 1 | |
rel | 729 | 8 | 202 | |
ECDFplot | ||||
annotationSize | 136 | 32 | 6 | |
fileHeight | 136 | 32 | 6 | |
fileHeightQuantiles | 136 | 32 | 2 | |
fileWidth | 136 | 32 | 6 | |
fileWidthQuantiles | 136 | 32 | 2 | |
inputType | 136 | 32 | 7 | |
pastedData | 136 | 32 | 5 | |
summary_cell_clicked | 136 | 32 | 2 | |
summary_cells_selected | 136 | 32 | 2 | |
summary_columns_selected | 136 | 32 | 2 | |
summary_rows_all | 136 | 32 | 4 | |
summary_rows_current | 136 | 32 | 4 | |
summary_rows_selected | 136 | 32 | 2 | |
summary_search | 136 | 32 | 2 | |
summary_state | 136 | 32 | 4 | |
tabSelected | 136 | 32 | 26 | |
textSize | 136 | 32 | 6 | |
textSizeQuantiles | 136 | 32 | 2 | |
tibQuantiles_cell_clicked | 136 | 32 | 2 | |
tibQuantiles_cells_selected | 136 | 32 | 2 | |
tibQuantiles_columns_selected | 136 | 32 | 2 | |
tibQuantiles_rows_all | 136 | 32 | 4 | |
tibQuantiles_rows_current | 136 | 32 | 4 | |
tibQuantiles_rows_selected | 136 | 32 | 2 | |
tibQuantiles_search | 136 | 32 | 2 | |
tibQuantiles_state | 136 | 32 | 4 | |
title | 136 | 32 | 6 | |
titleQuantiles | 136 | 32 | 2 | |
xLab | 136 | 32 | 6 | |
xLabQuantiles | 136 | 32 | 2 | |
yLab | 136 | 32 | 6 | |
yLabQuantiles | 136 | 32 | 2 | |
Histogram_and_summary1 | ||||
bins | 129 | 24 | 6 | |
contents_cell_clicked | 129 | 24 | 4 | |
contents_cells_selected | 129 | 24 | 4 | |
contents_columns_selected | 129 | 24 | 4 | |
contents_rows_all | 129 | 24 | 8 | |
contents_rows_current | 129 | 24 | 8 | |
contents_rows_selected | 129 | 24 | 4 | |
contents_search | 129 | 24 | 4 | |
contents_state | 129 | 24 | 8 | |
dataType | 129 | 24 | 6 | |
file1 | 129 | 24 | 6 | |
plotDownload-format | 129 | 24 | 1 | |
summary_cell_clicked | 129 | 24 | 3 | |
summary_cells_selected | 129 | 24 | 3 | |
summary_columns_selected | 129 | 24 | 3 | |
summary_rows_all | 129 | 24 | 6 | |
summary_rows_current | 129 | 24 | 6 | |
summary_rows_selected | 129 | 24 | 3 | |
summary_search | 129 | 24 | 3 | |
summary_state | 129 | 24 | 6 | |
title | 129 | 24 | 7 | |
var | 129 | 24 | 9 | |
xLab | 129 | 24 | 8 | |
yLab | 129 | 24 | 9 | |
CORE-OM_scoring | ||||
compData_cell_clicked | 128 | 27 | 4 | |
compData_cells_selected | 128 | 27 | 4 | |
compData_columns_selected | 128 | 27 | 4 | |
compData_rows_all | 128 | 27 | 4 | |
compData_rows_current | 128 | 27 | 10 | |
compData_rows_selected | 128 | 27 | 4 | |
compData_search | 128 | 27 | 4 | |
compData_state | 128 | 27 | 16 | |
contents_cell_clicked | 128 | 27 | 2 | |
contents_cells_selected | 128 | 27 | 2 | |
contents_columns_selected | 128 | 27 | 2 | |
contents_rows_all | 128 | 27 | 4 | |
contents_rows_current | 128 | 27 | 4 | |
contents_rows_selected | 128 | 27 | 2 | |
contents_search | 128 | 27 | 2 | |
contents_state | 128 | 27 | 4 | |
dp | 128 | 27 | 6 | |
file1 | 128 | 27 | 14 | |
summary_cell_clicked | 128 | 27 | 1 | |
summary_cells_selected | 128 | 27 | 1 | |
summary_columns_selected | 128 | 27 | 1 | |
summary_rows_all | 128 | 27 | 1 | |
summary_rows_current | 128 | 27 | 1 | |
summary_rows_selected | 128 | 27 | 1 | |
summary_search | 128 | 27 | 1 | |
summary_state | 128 | 27 | 1 | |
tabSelected | 128 | 27 | 28 | |
Spearman-Brown | ||||
currK | 111 | 13 | 9 | |
currRel | 111 | 13 | 8 | |
maxK | 111 | 13 | 6 | |
plotDownload-filename | 111 | 13 | 1 | |
reliabilities_cell_clicked | 111 | 13 | 3 | |
reliabilities_cells_selected | 111 | 13 | 3 | |
reliabilities_columns_selected | 111 | 13 | 3 | |
reliabilities_rows_all | 111 | 13 | 20 | |
reliabilities_rows_current | 111 | 13 | 22 | |
reliabilities_rows_selected | 111 | 13 | 3 | |
reliabilities_search | 111 | 13 | 3 | |
reliabilities_state | 111 | 13 | 22 | |
step | 111 | 13 | 8 | |
Cronbach1Feldt | ||||
alpha | 26 | 4 | 17 | |
dp | 26 | 4 | 1 | |
k | 26 | 4 | 7 | |
n | 26 | 4 | 1 | |
Create_univariate_data | ||||
charSeparator | 19 | 10 | 4 | |
dataTable_cell_clicked | 19 | 10 | 1 | |
dataTable_cells_selected | 19 | 10 | 1 | |
dataTable_columns_selected | 19 | 10 | 1 | |
dataTable_rows_all | 19 | 10 | 2 | |
dataTable_rows_current | 19 | 10 | 2 | |
dataTable_rows_selected | 19 | 10 | 1 | |
dataTable_search | 19 | 10 | 1 | |
dataTable_state | 19 | 10 | 2 | |
generate | 19 | 10 | 4 | |
CImean | ||||
SD | 14 | 5 | 4 | |
SE | 14 | 5 | 1 | |
dp | 14 | 5 | 2 | |
mean | 14 | 5 | 3 | |
n | 14 | 5 | 4 | |
CIproportion | ||||
ci | 11 | 4 | 1 | |
dp | 11 | 4 | 2 | |
n | 11 | 4 | 3 | |
x | 11 | 4 | 5 | |
CIcorrelation | ||||
R | 8 | 2 | 7 | |
n | 8 | 2 | 1 | |
CISpearman | ||||
n | 7 | 2 | 1 | |
rs | 7 | 2 | 6 | |
Screening1 | ||||
prev | 5 | 1 | 5 | |
CISD | ||||
SD | 4 | 4 | 1 | |
SDorVar | 4 | 4 | 1 | |
ci | 4 | 4 | 1 | |
n | 4 | 4 | 1 | |
plotCIPearson | ||||
R | 4 | 1 | 4 | |
Gaussian1 | ||||
n | 3 | 2 | 2 | |
nBins | 3 | 2 | 1 | |
CIdiff2proportions | ||||
n1 | 2 | 1 | 2 | |
RCI2 | ||||
compute | 2 | 1 | 2 |
So far nVars is a fixed number for each app as it’s going to be maximum number of input values the app requests from the user. Some apps, e.g. RCI1, have a variable “compute” that is just the button instructing the app to run which wasn’t present in early iterations of the app. Another change is that as I get more savvy about shiny some apps, perhaps existing ones, may develop a step-by-step interface so that the numbers of variables input for each use of the app may differ a bit depending on what the user has chosen to do.
It becomes a bit messy to analyse the inputs as it has to be done (as far as I can currently see) individually by app. It was quite useful as I could see that it had, at least at some point, been possible to enter impossible zero values for reliability and SD. I have now filtered those values out.
Here’s a breakdown for RCI1. These counts only include values that the user entered manually so if the user just left the value at the default value that isn’t counted (however, if the user changes it and then back to the default value, that entry of the default value is counted). I guess I could fix that by filling in the default value where a variable doesn’t appear in the inputs for the session. I’m not sure that’s sufficiently interesting to be worth the faff.
I guess that the .7 entry for the CI was probably me checking the app worked even for that value but I can’t remember for sure. Otherwise it seems entirely sensible that the only other non-default value was .9. The spread of the reliability values is more interesting and looks sensible to me, similarly for the SD.
I guess I could make the app a more interesting information gathering tools if I invited users to input the scale/score being used (i.e. “CORE-OM total”, “BDI-II total”) and even perhaps also ask about dataset (e.g. “my last six months baseline values”, or “the Sheffield X study”) but I think the amount of post-processing that would be necessary to get anything even halfway clean out of that seems unlikely to make this worth the programming/cleaning hassle.