Analysis of musculoskeletal pain in dentistry students

Objetives

# Packages loading.
library(tidyverse)
library(readxl)
library(knitr)
library(broom)
# Data loading.
df <- read_excel("Data/Cleaned Data.xlsx")

# Rename some variables
df <- df |>
    rename(
        NMQ = `Likert NMQ`,
        Activity = `Activity Level`,
        PHQ = `PHQ LEVEL`,
    )  |> 
# Convert some variables to factors
    mutate(
        Activity = factor(Activity, levels = c("Low", "Moderate", "High"), ordered = TRUE),
        PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
        ) 

Sample size

# Sample size
n = nrow(df)

Frequency tables

Gender

# Frequency tables.
df |> 
    count(Sex) |>
    kable()
Sex n
Female 253
Male 75
df |> 
    ggplot(aes(x = Sex, fill = Sex)) + 
    geom_bar()

df |>
  count(Sex) |>
  mutate(pct = scales::percent(n / sum(n))) |>
  knitr::kable()
Sex n pct
Female 253 77%
Male 75 23%

Age

df |> 
      summarize(
        min = min(Age),
        max = max(Age),
        mean = mean(Age),
        sd = sd(Age),
    ) |>
    kable()
min max mean sd
19 39 21.94207 2.982056

Course

# Frequency tables.
df |> 
    count(Year_Study) |>
    kable()
Year_Study n
84
75
56
64
49
df |> 
    ggplot(aes(x = Year_Study, fill = Year_Study)) + 
    geom_bar()

df |>
  count(Year_Study) |>
  mutate(pct = scales::percent(n / sum(n))) |>
  knitr::kable()
Year_Study n pct
84 25.6%
75 22.9%
56 17.1%
64 19.5%
49 14.9%

Weight

df |> 
    summarize(
        min = min(`Weight (Kg)`),
        max = max(`Weight (Kg)`),
        mean = mean(`Weight (Kg)`),
        sd = sd(`Weight (Kg)`),
    ) |>
    kable()
min max mean sd
28 140 61.80701 12.49072
df |> 
    group_by(Sex) |> 
    summarize(
        min = min(`Weight (Kg)`),
        max = max(`Weight (Kg)`),
        mean = mean(`Weight (Kg)`),
        sd = sd(`Weight (Kg)`),
    ) |>
    kable()
Sex min max mean sd
Female 28 100 57.96047 8.979608
Male 54 140 74.78267 13.914482

Height

df |> 
    summarize(
        min = min(`Height (cm)`),
        max = max(`Height (cm)`),
        mean = mean(`Height (cm)`),
        sd = sd(`Height (cm)`),
    ) |>
    kable()
min max mean sd
150 196 168.5322 8.50053
df |> 
    group_by(Sex) |> 
    summarize(
        min = min(`Height (cm)`),
        max = max(`Height (cm)`),
        mean = mean(`Height (cm)`),
        sd = sd(`Height (cm)`),
    ) |>
    kable()
Sex min max mean sd
Female 150 185 165.524 6.406686
Male 162 196 178.680 6.649853

BMI

df |> 
    group_by(Sex) |> 
    summarize(
        min = min(BMI),
        max = max(BMI),
        mean = mean(BMI),
        sd = sd(BMI),
    ) |>
    kable()
Sex min max mean sd
Female 9.69 34.60 21.15866 3.063567
Male 16.98 40.04 23.36373 3.744563
df  |> 
    ggplot(aes(x = BMI)) +
    geom_histogram(binwidth = 1,
                     fill = myred, 
                   color = "white")

df  |> 
    ggplot(aes(x = BMI, fill = Sex)) +
    geom_histogram(binwidth = 1, 
                   color = "white") +
    facet_wrap(~Sex) 

df  |> 
    ggplot(aes(x = BMI)) +
    geom_boxplot(fill = myred)

Dominant Hand

# Frequency tables.
df |> 
    count(Dom_Hand) |>
    kable()
Dom_Hand n
Left-handed 25
Right-handed 303
df |> 
    ggplot(aes(x = Dom_Hand, fill = Dom_Hand)) + 
    geom_bar()

df |>
  count(Dom_Hand) |>
  mutate(pct = scales::percent(n / sum(n))) |>
  knitr::kable()
Dom_Hand n pct
Left-handed 25 8%
Right-handed 303 92%

Descriptive Statistics

Hours of Work per Week

df |> 
    summarize(
        min = min(`Work_Hr/Wk`),
        max = max(`Work_Hr/Wk`),
        mean = mean(`Work_Hr/Wk`),
        sd = sd(`Work_Hr/Wk`),
    ) |>
    kable()
min max mean sd
0 90 23.02439 17.15372
df  |> 
    ggplot(aes(x = `Work_Hr/Wk`)) +
    geom_histogram(binwidth = 1,
                     fill = myred, 
                   color = "white")

df  |> 
    ggplot(aes(x = `Work_Hr/Wk`)) +
    geom_boxplot(fill = myred)

PHQ

With the categories in increasing order of severity.

df |> 
  mutate(PHQ = factor(PHQ, levels = c("Mild", "Minimal", "Moderate", "Moderately Severe", "Severe"))) |>
  count(PHQ) |> 
  kable()
PHQ n
Mild 120
Minimal 117
Moderate 60
Moderately Severe 26
Severe 5
df |> 
  mutate(PHQ = factor(PHQ, levels = c("Mild", "Minimal", "Moderate", "Moderately Severe", "Severe"))) |>
  ggplot(aes(x = PHQ, fill = PHQ)) + 
  geom_bar() +
    facet_wrap(~Year_Study)

df |> 
  mutate(PHQ = factor(PHQ, levels = c("Mild", "Minimal", "Moderate", "Moderately Severe", "Severe"))) |>
  ggplot(aes(x = PHQ, fill = PHQ)) + 
  geom_bar() +
    facet_wrap(~Sex) +
  scale_fill_hue()

df |> 
  mutate(PHQ = factor(PHQ, levels = c("Mild", "Minimal", "Moderate", "Moderately Severe", "Severe"))) |>
  ggplot(aes(x = PHQ, fill = PHQ)) + 
  geom_bar() +
  facet_wrap(~Sex) +
  scale_fill_hue() + 
  labs(fill = "Depression Level", x = "PHQ Severity", y = "Number of Students") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

df |> 
  mutate(PHQ = factor(PHQ, levels = c("Mild", "Minimal", "Moderate", "Moderately Severe", "Severe"))) |>
  count(Sex, PHQ) |> 
  group_by(Sex) |>
  mutate(pct = n / sum(n)) |>
  ggplot(aes(x = PHQ, y = pct, fill = PHQ)) +
  geom_col() +
  facet_wrap(~Sex) +
  scale_y_continuous(labels = scales::percent_format()) +
  scale_fill_hue() + 
  labs(fill = "Depression Level", x = "PHQ Severity", y = "Relative Frequency") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

df |> 
  mutate(PHQ = factor(PHQ, levels = c("Mild", "Minimal", "Moderate", "Moderately Severe", "Severe"))) |>
  ggplot(aes(x = PHQ, fill = PHQ)) + 
  geom_bar() +
  labs(x = "PHQ Severity", y = "Number of Students") +
  scale_fill_hue()

df |>
  count(PHQ) |>
  mutate(pct = scales::percent(n / sum(n))) |>
  knitr::kable()
PHQ n pct
Minimal 117 35.67%
Mild 120 36.59%
Moderate 60 18.29%
Moderately Severe 26 7.93%
Severe 5 1.52%
# Bar chart using relative frequency
df |> 
  count(PHQ) |>
  mutate(pct = n / sum(n)) |>
  ggplot(aes(x = PHQ, y = pct, fill = PHQ)) +
  geom_col() +
  scale_y_continuous(labels = scales::percent_format()) +
  labs(x = "PHQ Severity", y = "% of Students") +
  scale_fill_hue()

Activity Level

With the categories in increasing order of activity.

df |> 
  mutate(Activity = factor(Activity, levels = c("Low", "Moderate", "High"))) |>
  count(Activity) |> 
  kable()
Activity n
Low 90
Moderate 131
High 107
df |> 
  mutate(Activity = factor(Activity, levels = c("Low", "Moderate", "High"))) |>
  ggplot(aes(x = Activity, fill = Activity)) + 
  geom_bar() +
  labs(x = "Activity Level", y = "Number of Students") +
  scale_fill_hue()

# Bar chart with relative frequency
df |> 
  count(Activity) |>
  mutate(pct = n / sum(n)) |>
  ggplot(aes(x = Activity, y = pct, fill = Activity)) +
  geom_col() +
  scale_y_continuous(labels = scales::percent_format()) +
  labs(x = "Activity Level", y = "% of Students") +
  scale_fill_hue() 

df |> 
  mutate(Activity = factor(Activity, levels = c("Low", "Moderate", "High"))) |>
  ggplot(aes(x = Activity, fill = Activity)) + 
  geom_bar() +
    facet_wrap(~Year_Study)

df |> 
  mutate(Activity = factor(Activity, levels = c("Low", "Moderate", "High"))) |>
  ggplot(aes(x = Activity, fill = Activity)) + 
  geom_bar() +
    facet_wrap(~Sex) +
  labs(x = "Activity Level", y = "Relative Frequency") +
  scale_fill_hue()

df |>
  count(Activity) |>
  mutate(pct = scales::percent(n / sum(n))) |>
  knitr::kable()
Activity n pct
Low 90 27.4%
Moderate 131 39.9%
High 107 32.6%
df |>
  mutate(Activity = factor(Activity, levels = c("Low", "Moderate", "High"))) |>
  count(Sex, Activity) |>
  group_by(Sex) |>
  mutate(pct = n / sum(n)) |>
  ggplot(aes(x = Activity, y = pct, fill = Activity)) +
  geom_col() +
  facet_wrap(~Sex) +
  scale_y_continuous(labels = scales::percent_format()) +
  labs(x = "Activity Level", y = "% of Students") +
  scale_fill_hue() 

Jenkins score

df  |> 
    summarise(
        min = min(JENKINS),
        max = max(JENKINS),
        mean = mean(JENKINS),
        sd = sd(JENKINS),
    ) |>
    kable()
min max mean sd
0 20 5.079268 4.664899

There’s one outlier in the Jenkins boxplot.

df  |> 
    ggplot(aes(x = JENKINS)) +
    geom_histogram(binwidth = 1,
                     fill = myred, 
                   color = "white") +
    labs(x = "Severity of Sleep Disturbance", y = "Number of students")

# Histogram with relative frequency
df |> 
  ggplot(aes(x = JENKINS)) +
  geom_histogram(aes(y = after_stat(density)), 
                 binwidth = 1,
                 fill = myred, 
                 color = "white") +
  scale_y_continuous(labels = scales::percent_format()) +
  labs(x = "Severity of Sleep Disturbance", y = "% of Students") 

df  |> 
    ggplot(aes(x = JENKINS)) +
    geom_histogram(binwidth = 1,
                     fill = myred, 
                   color = "white") +
    facet_wrap(~Year_Study) 

df  |> 
    ggplot(aes(x = JENKINS)) +
    geom_histogram(binwidth = 1,
                     fill = myred, 
                   color = "white") +
    facet_wrap(~Sex) 

df  |> 
    ggplot(aes(x = JENKINS)) +
    geom_boxplot(fill = myred)

Pain in the last 12 months

# Frequency tables.
df |> 
    count(AnyPain12) |>
    kable()
AnyPain12 n
No 46
Yes 282
df |> 
    ggplot(aes(x = AnyPain12, fill = AnyPain12)) + 
    geom_bar()

Pain in the last 7 days

# Frequency tables.
df |> 
    count(AnyPain7) |>
    kable()
AnyPain7 n
No 138
Yes 190
df |> 
    ggplot(aes(x = AnyPain7, fill = AnyPain7)) + 
    geom_bar()

Work Affected by Pain

# Frequency tables.
df |> 
    count(WorkAffected) |>
    kable()
WorkAffected n
No 197
Yes 131
df |> 
    count(WorkAffected) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
WorkAffected n Percentage
No 197 60.06098
Yes 131 39.93902

Estimation of pain in Neck12 Produces Confidence Interval, apply to all frequency tables

freq <- table(df$WorkAffected)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.3993902 12.8811 0.0003319 1 0.3463729 0.4548036 1-sample proportions test with continuity correction two.sided

Pain Sites 12 months

df  |> 
    summarise(
        min = min(TotalSites12),
        max = max(TotalSites12),
        mean = mean(TotalSites12),
        sd = sd(TotalSites12),
    ) |>
    kable()
min max mean sd
0 7 2.573171 1.769815

Pain Sites 7 days

df  |> 
    summarise(
        min = min(TotalSites7),
        max = max(TotalSites7),
        mean = mean(TotalSites7),
        sd = sd(TotalSites7),
    ) |>
    kable()
min max mean sd
0 7 1.185976 1.409508

SNQ score

df  |> 
    summarise(
        min = min(NMQ),
        max = max(NMQ),
        mean = mean(NMQ),
        sd = sd(NMQ),
    ) |>
    kable()
min max mean sd
0 4 2.237805 1.443589
df  |> 
    ggplot(aes(x = NMQ)) +
    geom_histogram(binwidth = 1,
                     fill = myred, 
                   color = "white")

df  |> 
    ggplot(aes(x = NMQ)) +
    geom_histogram(binwidth = 1,
                     fill = myred, 
                   color = "white") +
    labs(x = "SNQ score", y = "Number of students")

df |> 
  ggplot(aes(x = NMQ)) +
  geom_histogram(aes(y = after_stat(density)), 
                 binwidth = 1,
                 fill = myred, 
                 color = "white") +
  scale_y_continuous(labels = scales::percent_format()) +
  labs(x = "SNQ Score", y = "% of Students") 

df  |> 
    ggplot(aes(x = NMQ)) +
    geom_boxplot(fill = myred)

df  |> 
    ggplot(aes(x = NMQ, fill = Year_Study)) +
    geom_histogram(binwidth = 1, 
                   color = "white") +
    facet_wrap(~Year_Study) 

df  |> 
    ggplot(aes(x = NMQ, fill = Sex)) +
    geom_histogram(binwidth = 1, 
                   color = "white") +
    facet_wrap(~Sex) 

TUESDAY. APRIL 29.

Neck12 analysis

Frequency table

df |> 
    group_by(Year_Study) |>
    count(Neck12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Neck12 n Percentage
No 41 48.80952
Yes 43 51.19048
No 30 40.00000
Yes 45 60.00000
No 14 25.00000
Yes 42 75.00000
No 26 40.62500
Yes 38 59.37500
No 16 32.65306
Yes 33 67.34694

Estimation of pain in Neck12 Produces Confidence Interval, apply to all frequency tables

freq <- table(df$Neck12)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.6128049 16.24695 5.56e-05 1 0.5575294 0.6653936 1-sample proportions test with continuity correction two.sided

Shoulder12 analysis

Frequency table

df |> 
    count(Shoulder12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Shoulder12 n Percentage
No 209 63.719512
Yes, in BOTH shoulders  78 23.780488
Yes, in the LEFT shoulder 15 4.573171
Yes, in the RIGHT shoulder 26 7.926829

Estimation of pain in Shoulder12 For body parts that have more than one Yes option Proportion of No is calculated than subtracted

freq <- table(df$Shoulder12)["No"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(n-freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.3628049 24.14939 9e-07 1 0.3111769 0.4177017 1-sample proportions test with continuity correction two.sided

Check normality of JENKINS score

Shapiro Test of Normality Perform for all continuous variables

# Check normality of JENKINS score
shapiro.test(df$JENKINS) |> 
    tidy() |> 
    kable()
statistic p.value method
0.8900651 0 Shapiro-Wilk normality test

As the p-value is less than 0.05, we reject the null hypothesis of normality.

Check normality of NMQ score

# Check normality of NMQ score
shapiro.test(df$NMQ) |> 
    tidy() |> 
    kable()
statistic p.value method
0.8593169 0 Shapiro-Wilk normality test

As the p-value is less than 0.05, we reject the null hypothesis of normality.

Association between NMQ and JENKINS

As both NMQ and JENKINS scores are not normally distributed, we will use the Kendall correlation test.

# Association between NMQ and JENKINS
cor.test(df$NMQ, df$JENKINS, method = "kendall") |> 
    tidy() |> 
    kable()
estimate statistic p.value method alternative
0.1751685 4.11401 3.89e-05 Kendall’s rank correlation tau two.sided

Interpretation of Kendall correlation test: - No correlation: less than 0.1 - Weak correlation: 0.1 to 0.3 - Moderate correlation: 0.3 to 0.6 - Strong correlation: 0.6 to 0.8 - Very strong correlation: 0.8 to 1

Association between NMQ and Activity

# Association between NMQ and Activity
cor.test(df$NMQ, as.numeric(df$Activity), method = "kendall") |> 
    tidy() |> 
    kable()
estimate statistic p.value method alternative
0.0580097 1.227131 0.2197733 Kendall’s rank correlation tau two.sided

Association between NMQ and PHQ

# Association between NMQ and PHQ
cor.test(df$NMQ, as.numeric(df$PHQ), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.2090054 4.507812 6.5e-06 Kendall’s rank correlation tau two.sided

FRIDAY MAY 2

Sex

df |> 
    count(Sex) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Sex n Percentage
Female 253 77.13415
Male 75 22.86585
freq <- table(df$Sex)["Male"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.2286585 95.51524 0 1 0.1851032 0.2787051 1-sample proportions test with continuity correction two.sided
freq <- table(df$Sex)["Female"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.7713415 95.51524 0 1 0.7212949 0.8148968 1-sample proportions test with continuity correction two.sided

Year of study

df |> 
    count(Year_Study) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study n Percentage
84 25.60976
75 22.86585
56 17.07317
64 19.51220
49 14.93902
freq <- table(df$Year_Study)["1º"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.2560976 77.07622 0 1 0.2104586 0.3075643 1-sample proportions test with continuity correction two.sided
freq <- table(df$Year_Study)["2º"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.2286585 95.51524 0 1 0.1851032 0.2787051 1-sample proportions test with continuity correction two.sided
freq <- table(df$Year_Study)["3º"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1707317 140.9299 0 1 0.132515 0.2168542 1-sample proportions test with continuity correction two.sided
freq <- table(df$Year_Study)["4º"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.195122 120.7348 0 1 0.1544851 0.243066 1-sample proportions test with continuity correction two.sided
freq <- table(df$Year_Study)["5º"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1493902 159.8811 0 1 0.1135334 0.1936816 1-sample proportions test with continuity correction two.sided

Dominant Hand

df |> 
    count(Dom_Hand) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Dom_Hand n Percentage
Left-handed 25 7.621951
Right-handed 303 92.378049
freq <- table(df$Dom_Hand)["Right-handed"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.9237805 233.9299 0 1 0.8881463 0.9490927 1-sample proportions test with continuity correction two.sided
freq <- table(df$Dom_Hand)["Left-handed"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0762195 233.9299 0 1 0.0509073 0.1118537 1-sample proportions test with continuity correction two.sided

Activity Level

df |> 
    count(Activity) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Activity n Percentage
Low 90 27.43902
Moderate 131 39.93902
High 107 32.62195
freq <- table(df$Activity)["Low"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.2743902 65.8811 0 1 0.2274979 0.3266697 1-sample proportions test with continuity correction two.sided
freq <- table(df$Activity)["Moderate"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.3993902 12.8811 0.0003319 1 0.3463729 0.4548036 1-sample proportions test with continuity correction two.sided
freq <- table(df$Activity)["High"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.3262195 38.92988 0 1 0.2763022 0.3802804 1-sample proportions test with continuity correction two.sided

Depression

df |> 
    count(PHQ) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
PHQ n Percentage
Minimal 117 35.670732
Mild 120 36.585366
Moderate 60 18.292683
Moderately Severe 26 7.926829
Severe 5 1.524390
freq <- table(df$PHQ)["Minimal"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.3567073 26.3689 3e-07 1 0.3053416 0.4114876 1-sample proportions test with continuity correction two.sided
freq <- table(df$PHQ)["Mild"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.3658537 23.07622 1.6e-06 1 0.3140979 0.4208055 1-sample proportions test with continuity correction two.sided
freq <- table(df$PHQ)["Moderate"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1829268 130.6372 0 1 0.1434659 0.2299937 1-sample proportions test with continuity correction two.sided
freq <- table(df$PHQ)["Moderately Severe"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0792683 230.564 0 1 0.0534104 0.1153652 1-sample proportions test with continuity correction two.sided
freq <- table(df$PHQ)["Severe"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0152439 306.3689 0 1 0.0056255 0.037267 1-sample proportions test with continuity correction two.sided

Pain 12 months

df |> 
    count(AnyPain12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
AnyPain12 n Percentage
No 46 14.02439
Yes 282 85.97561
freq <- table(df$AnyPain12)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.8597561 168.3689 0 1 0.8163267 0.8945225 1-sample proportions test with continuity correction two.sided

Pain 7 days

df |> 
    count(AnyPain7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
AnyPain7 n Percentage
No 138 42.07317
Yes 190 57.92683
freq <- table(df$AnyPain7)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.5792683 7.929878 0.0048625 1 0.5236942 0.632955 1-sample proportions test with continuity correction two.sided

Neck

df |> 
    count(Neck12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Neck12 n Percentage
No 127 38.71951
Yes 201 61.28049
freq <- table(df$Neck12)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.6128049 16.24695 5.56e-05 1 0.5575294 0.6653936 1-sample proportions test with continuity correction two.sided
df |> 
    count(Neck_Work...24) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Neck_Work…24 n Percentage
No 269 82.0122
Yes 59 17.9878
freq <- table(df$Neck_Work...24)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.179878 133.1738 0 1 0.1407216 0.2267153 1-sample proportions test with continuity correction two.sided
df |> 
    count(Neck7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Neck7 n Percentage
No 227 69.20732
Yes 101 30.79268
freq <- table(df$Neck7)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.3079268 47.6372 0 1 0.2589928 0.3614425 1-sample proportions test with continuity correction two.sided

Shoulder

df |> 
    count(Shoulder_Work...28) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Shoulder_Work…28 n Percentage
No 306 93.292683
Yes 22 6.707317
freq <- table(df$Shoulder_Work...28)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0670732 244.1738 0 1 0.043479 0.1012423 1-sample proportions test with continuity correction two.sided
df |> 
    count(Shoulder7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Shoulder7 n Percentage
No 272 82.92683
Yes 56 17.07317
freq <- table(df$Shoulder7)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1707317 140.9299 0 1 0.132515 0.2168542 1-sample proportions test with continuity correction two.sided

Elbow

df |> 
    count(Elbow12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Elbow12 n Percentage
No 310 94.5121951
Yes, in BOTH elbows 4 1.2195122
Yes, in the LEFT elbow 3 0.9146341
Yes, in the RIGHT elbow 11 3.3536585
freq <- table(df$Elbow12)["No"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(n-freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.054878 258.1738 0 1 0.0337974 0.0868846 1-sample proportions test with continuity correction two.sided
df |> 
    count(Elbow_Work) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Elbow_Work n Percentage
No 320 97.560976
Yes 8 2.439024
freq <- table(df$Elbow_Work)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0243902 294.8811 0 1 0.0113847 0.0493565 1-sample proportions test with continuity correction two.sided
df |> 
    count(Elbow7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Elbow7 n Percentage
No 320 97.560976
Yes 8 2.439024
freq <- table(df$Elbow7)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0243902 294.8811 0 1 0.0113847 0.0493565 1-sample proportions test with continuity correction two.sided

Wrist

df |> 
    count(Wrist12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Wrist12 n Percentage
No 251 76.524390
Yes, in both wrists/hands 21 6.402439
Yes, in the LEFT wrist/hand 10 3.048780
Yes, in the RIGHT wrist/hand 46 14.024390
freq <- table(df$Wrist12)["No"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(n-freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.2347561 91.24695 0 1 0.1907155 0.2851402 1-sample proportions test with continuity correction two.sided
df |> 
    count(Wrist_Work) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Wrist_Work n Percentage
No 306 93.292683
Yes 22 6.707317
freq <- table(df$Wrist_Work)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0670732 244.1738 0 1 0.043479 0.1012423 1-sample proportions test with continuity correction two.sided
df |> 
    count(Wrist7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Wrist7 n Percentage
No 303 92.378049
Yes 25 7.621951
freq <- table(df$Wrist7)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0762195 233.9299 0 1 0.0509073 0.1118537 1-sample proportions test with continuity correction two.sided

Upper Back

df |> 
    count(UBack12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
UBack12 n Percentage
No 194 59.14634
Yes 134 40.85366
freq <- table(df$UBack12)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.4085366 10.6128 0.0011231 1 0.3552198 0.4640312 1-sample proportions test with continuity correction two.sided
df |> 
    count(Uback_Work) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Uback_Work n Percentage
No 292 89.02439
Yes 36 10.97561
freq <- table(df$Uback_Work)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1097561 198.247 0 1 0.0790345 0.149914 1-sample proportions test with continuity correction two.sided
df |> 
    count(UBack7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
UBack7 n Percentage
No 270 82.31707
Yes 58 17.68293
freq <- table(df$UBack7)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1768293 135.7348 0 1 0.1379816 0.2234326 1-sample proportions test with continuity correction two.sided

Lower Back

df |> 
    count(LBack12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
LBack12 n Percentage
No 174 53.04878
Yes 154 46.95122
freq <- table(df$LBack12)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.4695122 1.10061 0.2941323 1 0.4146711 0.5250789 1-sample proportions test with continuity correction two.sided
df |> 
    count(LBack_Work) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
LBack_Work n Percentage
No 287 87.5
Yes 41 12.5
freq <- table(df$LBack_Work)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.125 183.003 0 1 0.0921709 0.1668762 1-sample proportions test with continuity correction two.sided
df |> 
    count(LBack7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
LBack7 n Percentage
No 254 77.43902
Yes 74 22.56098
freq <- table(df$LBack7)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.2256098 97.68598 0 1 0.182302 0.2754826 1-sample proportions test with continuity correction two.sided

Hip

df |> 
    count(Hip12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Hip12 n Percentage
No 298 90.853658
Yes 30 9.146342
freq <- table(df$Hip12)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0914634 217.3445 0 1 0.0635404 0.1292993 1-sample proportions test with continuity correction two.sided
df |> 
    count(Hip_Work) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Hip_Work n Percentage
No 318 96.95122
Yes 10 3.04878
freq <- table(df$Hip_Work)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0304878 287.3445 0 1 0.0155666 0.0571291 1-sample proportions test with continuity correction two.sided
df |> 
    count(Hip7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Hip7 n Percentage
No 319 97.256098
Yes 9 2.743902
freq <- table(df$Hip7)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.027439 291.1006 0 1 0.013449 0.0532658 1-sample proportions test with continuity correction two.sided

Knees

df |> 
    count(Knee12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Knee12 n Percentage
No 259 78.96341
Yes 69 21.03659
freq <- table(df$Knee12)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.2103659 108.9055 0 1 0.1683479 0.2593193 1-sample proportions test with continuity correction two.sided
df |> 
    count(Knee_Work) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Knee_Work n Percentage
No 294 89.63415
Yes 34 10.36585
freq <- table(df$Knee_Work)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1036585 204.5152 0 1 0.0738343 0.1430766 1-sample proportions test with continuity correction two.sided
df |> 
    count(Knee7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Knee7 n Percentage
No 293 89.32927
Yes 35 10.67073
freq <- table(df$Knee7)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1067073 201.3689 0 1 0.0764302 0.1464993 1-sample proportions test with continuity correction two.sided

Feet

df |> 
    count(Feet12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Feet12 n Percentage
No 286 87.19512
Yes 42 12.80488
freq <- table(df$Feet12)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1280488 180.0274 0 1 0.0948194 0.1702481 1-sample proportions test with continuity correction two.sided
df |> 
    count(Feet_Work) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Feet_Work n Percentage
No 307 93.597561
Yes 21 6.402439
freq <- table(df$Feet_Work)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0640244 247.6372 0 1 0.0410327 0.0976771 1-sample proportions test with continuity correction two.sided
df |> 
    count(Feet7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Feet7 n Percentage
No 305 92.987805
Yes 23 7.012195
freq <- table(df$Feet7)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.070122 240.7348 0 1 0.0459408 0.1047929 1-sample proportions test with continuity correction two.sided

Specific Nordic Questionnaire

Low Back

df |> 
    count(`Low Back`) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Low Back n Percentage
No 121 36.89024
Yes 207 63.10976
freq <- table(df$`Low Back`)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.6310976 22.02744 2.7e-06 1 0.576093 0.6829788 1-sample proportions test with continuity correction two.sided
df |> 
    count(LB_Hosp) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
LB_Hosp n Percentage
No 322 98.170732
Yes 6 1.829268
freq <- table(df$LB_Hosp)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0182927 302.5152 0 1 0.0074576 0.0413682 1-sample proportions test with continuity correction two.sided
df |> 
    count(LB_Job) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
LB_Job n Percentage
No 309 94.207317
Yes 19 5.792683
freq <- table(df$LB_Job)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0579268 254.6372 0 1 0.0361906 0.0904993 1-sample proportions test with continuity correction two.sided
df |> 
    count(LB_Work) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
LB_Work n Percentage
No 307 93.597561
Yes 21 6.402439
freq <- table(df$LB_Work)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0640244 247.6372 0 1 0.0410327 0.0976771 1-sample proportions test with continuity correction two.sided
df |> 
    count(LB_Leisure) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
LB_Leisure n Percentage
No 290 88.41463
Yes 38 11.58537
freq <- table(df$LB_Leisure)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1158537 192.0762 0 1 0.0842668 0.1567203 1-sample proportions test with continuity correction two.sided
df |> 
    count(LB_Tx) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
LB_Tx n Percentage
No 283 86.28049
Yes 45 13.71951
freq <- table(df$LB_Tx)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1371951 171.247 0 1 0.1028038 0.180326 1-sample proportions test with continuity correction two.sided

Neck

df |> 
    count(Neck) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Neck n Percentage
No 119 36.28049
Yes 209 63.71951
freq <- table(df$Neck)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.6371951 24.14939 9e-07 1 0.5822983 0.6888231 1-sample proportions test with continuity correction two.sided
df |> 
    count(Neck_Acc) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Neck_Acc n Percentage
No 301 91.768293
Yes 27 8.231707
freq <- table(df$Neck_Acc)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0823171 227.2226 0 1 0.0559258 0.1188649 1-sample proportions test with continuity correction two.sided
df |> 
    count(Neck_Job) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Neck_Job n Percentage
No 299 91.158537
Yes 29 8.841463
freq <- table(df$Neck_Job)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0884146 220.6128 0 1 0.0609914 0.1258315 1-sample proportions test with continuity correction two.sided
df |> 
    count(Neck_Work...24) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Neck_Work…24 n Percentage
No 269 82.0122
Yes 59 17.9878
freq <- table(df$Neck_Work...66)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1128049 195.1494 0 1 0.0816468 0.1533209 1-sample proportions test with continuity correction two.sided
df |> 
    count(Neck_Leisure) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Neck_Leisure n Percentage
No 281 85.67073
Yes 47 14.32927
freq <- table(df$Neck_Leisure)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1432927 165.5152 0 1 0.1081572 0.187015 1-sample proportions test with continuity correction two.sided
df |> 
    count(Neck_Tx) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Neck_Tx n Percentage
No 277 84.45122
Yes 51 15.54878
freq <- table(df$Neck_Tx)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1554878 154.3445 0 1 0.1189315 0.2003271 1-sample proportions test with continuity correction two.sided

Shoulder

df |> 
    count(Shoulder) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Shoulder n Percentage
No 237 72.2561
Yes 91 27.7439
freq <- table(df$Shoulder)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.277439 64.10061 0 1 0.2303476 0.3298442 1-sample proportions test with continuity correction two.sided
df |> 
    count(Shoulder_Job) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Shoulder_Job n Percentage
No 321 97.865854
Yes 7 2.134146
freq <- table(df$Shoulder_Job)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0213415 298.686 0 1 0.0093833 0.0453938 1-sample proportions test with continuity correction two.sided
df |> 
    count(Shoulder_Work...76) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Shoulder_Work…76 n Percentage
No 320 97.560976
Yes 8 2.439024
freq <- table(df$Shoulder_Work...76)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0243902 294.8811 0 1 0.0113847 0.0493565 1-sample proportions test with continuity correction two.sided
df |> 
    count(Shoulder_Leisure) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Shoulder_Leisure n Percentage
No 317 96.646342
Yes 11 3.353658
freq <- table(df$Shoulder_Leisure)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0335366 283.6128 0 1 0.0177303 0.060952 1-sample proportions test with continuity correction two.sided
df |> 
    count(Shoulder_Tx) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Shoulder_Tx n Percentage
No 309 94.207317
Yes 19 5.792683
freq <- table(df$Shoulder_Tx)["Yes"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0579268 254.6372 0 1 0.0361906 0.0904993 1-sample proportions test with continuity correction two.sided

TEST OF NORMALITY

Shapiro Test of Normality Perform for ALL variables

Jenkins

shapiro.test(df$JENKINS) |> 
    tidy() |> 
    kable()
statistic p.value method
0.8900651 0 Shapiro-Wilk normality test

As the p-value is less than 0.05, we reject the null hypothesis of normality.

PHQ

shapiro.test(df$`PHQ-9`) |> 
    tidy() |> 
    kable()
statistic p.value method
0.9430184 0 Shapiro-Wilk normality test

Activity

shapiro.test(df$MET_SUM) |> 
    tidy() |> 
    kable()
statistic p.value method
0.8476052 0 Shapiro-Wilk normality test

Age

shapiro.test(df$Age) |> 
    tidy() |> 
    kable()
statistic p.value method
0.8080176 0 Shapiro-Wilk normality test

Work Hour per Week

shapiro.test(df$`Work_Hr/Wk`) |> 
    tidy() |> 
    kable()
statistic p.value method
0.9150633 0 Shapiro-Wilk normality test

BMI

shapiro.test(df$BMI) |> 
    tidy() |> 
    kable()
statistic p.value method
0.920777 0 Shapiro-Wilk normality test

NMQ

shapiro.test(df$NMQ) |> 
    tidy() |> 
    kable()
statistic p.value method
0.8593169 0 Shapiro-Wilk normality test

Total Sites 12

shapiro.test(df$TotalSites12) |> 
    tidy() |> 
    kable()
statistic p.value method
0.9432966 0 Shapiro-Wilk normality test

Total Sites 7

shapiro.test(df$TotalSites7) |> 
    tidy() |> 
    kable()
statistic p.value method
0.7997039 0 Shapiro-Wilk normality test

Association

Association between NMQ and JENKINS

As both NMQ and JENKINS scores are not normally distributed, we will use the Kendall correlation test.

# Association between NMQ and JENKINS
cor.test(df$NMQ, df$JENKINS, method = "kendall") |> 
    tidy() |> 
    kable()
estimate statistic p.value method alternative
0.1751685 4.11401 3.89e-05 Kendall’s rank correlation tau two.sided

Interpretation of Kendall correlation test: - No correlation: less than 0.1 - Weak correlation: 0.1 to 0.3 - Moderate correlation: 0.3 to 0.6 - Strong correlation: 0.6 to 0.8 - Very strong correlation: 0.8 to 1

Association between NMQ and Activity

# Association between NMQ and Activity
cor.test(df$NMQ, as.numeric(df$Activity), method = "kendall") |> 
    tidy() |> 
    kable()
estimate statistic p.value method alternative
0.0580097 1.227131 0.2197733 Kendall’s rank correlation tau two.sided

Association between NMQ and Met_Sum

# Association between NMQ and MET_SUM
cor.test(df$NMQ, df$MET_SUM, method = "kendall") |> 
    tidy() |> 
    kable()
estimate statistic p.value method alternative
0.0490709 1.179627 0.2381485 Kendall’s rank correlation tau two.sided

Association between NMQ and PHQ

# Association between NMQ and PHQ
cor.test(df$NMQ, as.numeric(df$PHQ), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.2090054 4.507812 6.5e-06 Kendall’s rank correlation tau two.sided

Association between NMQ and Sex

df <- df %>%
  mutate(Sex = factor(Sex, levels = c("Male", "Female"), ordered = TRUE))
# Association between NMQ and Sex
cor.test(df$NMQ, as.numeric(df$Sex), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.0152315 0.3042428 0.7609429 Kendall’s rank correlation tau two.sided

Association between NMQ and Age

cor.test(df$NMQ, df$Age, method = "kendall") |> 
    tidy() |> 
    kable()
estimate statistic p.value method alternative
0.0686514 1.57406 0.1154737 Kendall’s rank correlation tau two.sided

Association between NMQ and Year of Study

df <- df %>%
  mutate(Year_Study = factor(Year_Study, levels = c("1º", "2º", "3º", "4º", "5º"), ordered = TRUE))
cor.test(df$NMQ, as.numeric(df$Year_Study), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.0833706 1.857258 0.0632745 Kendall’s rank correlation tau two.sided

NMQ x Work Hours per week

cor.test(df$NMQ, df$`Work_Hr/Wk`, method = "kendall") |> 
    tidy() |> 
    kable()
estimate statistic p.value method alternative
0.1254633 3.004789 0.0026576 Kendall’s rank correlation tau two.sided

NMQ X Weight

cor.test(df$NMQ, df$`Weight (Kg)`, method = "kendall") |> 
    tidy() |> 
    kable()
estimate statistic p.value method alternative
0.020397 0.4893496 0.6245942 Kendall’s rank correlation tau two.sided

NMQ x Height

cor.test(df$NMQ, df$`Height (cm)`, method = "kendall") |> 
    tidy() |> 
    kable()
estimate statistic p.value method alternative
-0.0093777 -0.2246466 0.8222542 Kendall’s rank correlation tau two.sided

NMQ x BMI

df <- df %>%
  mutate(BMI_Category = factor(BMI_Category, levels = c("Underweight", "Normal weight","Overweight", "Obesity Class I", "Obesity Class II", "Obesity Class III"), ordered = TRUE))
cor.test(df$NMQ, as.numeric(df$BMI_Category), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.0380265 0.7857168 0.4320334 Kendall’s rank correlation tau two.sided
cor.test(df$NMQ, df$BMI, method = "kendall") |> 
    tidy() |> 
    kable()
estimate statistic p.value method alternative
0.0413366 1.007822 0.3135401 Kendall’s rank correlation tau two.sided

NMQ x Dominant Hand

df <- df %>%
  mutate(Dom_Hand = factor(Dom_Hand, levels = c("Left-handed", "Right-handed"), ordered = TRUE))
cor.test(df$NMQ, as.numeric(df$Dom_Hand), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.0031197 0.0623152 0.9503119 Kendall’s rank correlation tau two.sided

NMQ X AnyPain12

df <- df %>%
  mutate(AnyPain12 = factor(AnyPain12, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$NMQ, as.numeric(df$AnyPain12), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.5622732 11.23119 0 Kendall’s rank correlation tau two.sided

NMQ X AnyPain 7

df <- df %>%
  mutate(AnyPain7 = factor(AnyPain7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$NMQ, as.numeric(df$AnyPain7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.6713437 13.40983 0 Kendall’s rank correlation tau two.sided

NMQ X Work Affected

df <- df %>%
  mutate(WorkAffected = factor(WorkAffected, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$NMQ, as.numeric(df$WorkAffected), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.7930722 15.84131 0 Kendall’s rank correlation tau two.sided

NMQ x Total Sites 12

cor.test(df$NMQ, df$TotalSites12, method = "kendall") |> 
    tidy() |> 
    kable()
estimate statistic p.value method alternative
0.6109764 13.90236 0 Kendall’s rank correlation tau two.sided

NMQ x Total Sites 7

cor.test(df$NMQ, df$TotalSites7, method = "kendall") |> 
    tidy() |> 
    kable()
estimate statistic p.value method alternative
0.5947138 12.98996 0 Kendall’s rank correlation tau two.sided

Activity x AnyPain12

df <- df %>%
  mutate(AnyPain12 = factor(AnyPain12, levels = c("No", "Yes"), ordered = TRUE))
library(dplyr)
library(broom)
library(knitr)

# Step 1: Recode Activity
df <- df %>%
  mutate(Activity = factor(Activity, levels = c("Low", "Moderate", "High"), ordered = TRUE))

# Step 2: Correlation test
cor.test(as.numeric(df$Activity), as.numeric(df$AnyPain12), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.0333017 0.6378048 0.5236007 Kendall’s rank correlation tau two.sided

Activity x AnyPain7

df <- df %>%
  mutate(AnyPain7 = factor(AnyPain7, levels = c("No", "Yes"), ordered = TRUE))
library(dplyr)
library(broom)
library(knitr)

# Step 1: Recode Activity
df <- df %>%
  mutate(Activity = factor(Activity, levels = c("Low", "Moderate", "High"), ordered = TRUE))

# Step 2: Correlation test
cor.test(as.numeric(df$Activity), as.numeric(df$AnyPain7), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0 0 1 Kendall’s rank correlation tau two.sided

Activity x Total Sites 12

library(dplyr)
library(broom)
library(knitr)

# Step 1: Recode Activity
df <- df %>%
  mutate(Activity = factor(Activity, levels = c("Low", "Moderate", "High"), ordered = TRUE))

# Step 2: Correlation test
cor.test(as.numeric(df$Activity), df$TotalSites12, method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
-0.009409 -0.2053009 0.837337 Kendall’s rank correlation tau two.sided

Activity x Total Sites 7

library(dplyr)
library(broom)
library(knitr)

# Step 1: Recode Activity
df <- df %>%
  mutate(Activity = factor(Activity, levels = c("Low", "Moderate", "High"), ordered = TRUE))

# Step 2: Correlation test
cor.test(as.numeric(df$Activity), as.numeric(df$TotalSites7), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
-0.020623 -0.4319377 0.6657867 Kendall’s rank correlation tau two.sided

Activity x Neck12

library(dplyr)
library(broom)
library(knitr)

# Recode Neck12 and Activity
df <- df %>%
  mutate(
    Neck12 = factor(Neck12, levels = c("No", "Yes"), ordered = TRUE),
    Activity = factor(Activity, levels = c("Low", "Moderate", "High"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$Activity), as.numeric(df$Neck12), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
-0.0209133 -0.4005381 0.6887602 Kendall’s rank correlation tau two.sided

Activity x Neck7

library(dplyr)
library(broom)
library(knitr)

# Recode Neck7 and Activity
df <- df %>%
  mutate(
    Neck7 = factor(Neck7, levels = c("No", "Yes"), ordered = TRUE),
    Activity = factor(Activity, levels = c("Low", "Moderate", "High"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$Activity), as.numeric(df$Neck7), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
-0.0113318 -0.2170311 0.8281841 Kendall’s rank correlation tau two.sided

Activity x Year Study

df <- df %>%
  mutate(Year_Study = factor(Year_Study, levels = c("1º", "2º", "3º", "4º", "5º"), ordered = TRUE),
         Activity = factor(Activity, levels = c("Low", "Moderate", "High"), ordered = TRUE))
cor.test(as.numeric(df$Activity), as.numeric(df$Year_Study), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.0767692 1.639916 0.1010225 Kendall’s rank correlation tau two.sided

Activity x Sex

df <- df %>%
  mutate(Sex = factor(Sex, levels = c("Female", "Male"), ordered = TRUE),
         Activity = factor(Activity, levels = c("Low", "Moderate", "High"), ordered = TRUE))
cor.test(as.numeric(df$Activity), as.numeric(df$Sex), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.1094828 2.096851 0.0360068 Kendall’s rank correlation tau two.sided

Mann-Whitney U test

wilcox.test(as.numeric(Activity) ~ Sex, data = df) 

    Wilcoxon rank sum test with continuity correction

data:  as.numeric(Activity) by Sex
W = 8068, p-value = 0.03607
alternative hypothesis: true location shift is not equal to 0

PHQ x BMI

library(dplyr)
library(broom)
library(knitr)

# Recode PHQ and BMI
df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    BMI_Category = factor(BMI_Category, levels = c("Underweight", "Normal weight", "Overweight", "Obesity Class I", "Obesity Class II", "Obesity Class III"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$BMI_Category), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.0728875 1.47235 0.1409264 Kendall’s rank correlation tau two.sided

PHQ x Neck 12

library(dplyr)
library(broom)
library(knitr)

# Recode PHQ and BMI
df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Neck12 = factor(Neck12, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$Neck12), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.0948042 1.851313 0.0641245 Kendall’s rank correlation tau two.sided

PHQ x Neck 7

library(dplyr)
library(broom)
library(knitr)

# Recode PHQ and BMI
df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Neck7 = factor(Neck7, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$Neck7), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.1346408 2.629233 0.0085578 Kendall’s rank correlation tau two.sided

PHQ x Neck Work Affected

library(dplyr)
library(broom)
library(knitr)

# Recode PHQ and BMI
df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Neck_Work...24 = factor(Neck_Work...24, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$Neck_Work...24), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.0829803 1.620419 0.1051422 Kendall’s rank correlation tau two.sided

PHQ x Shoulder 12

Need to fix the levels of Shoulder12, cannot have unordered levels of left shoulder / right shoulder / both shoulders

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Shoulder12YN = factor(Shoulder12YN, levels = c("No", "Yes"), ordered = TRUE)
  )

cor.test(as.numeric(df$PHQ), as.numeric(df$Shoulder12YN), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.1514111 2.95672 0.0031093 Kendall’s rank correlation tau two.sided

PHQ x Shoulder Work Affected

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Shoulder_Work...28 = factor(Shoulder_Work...28, levels = c("No", "Yes"), ordered = TRUE)
  )

cor.test(as.numeric(df$PHQ), as.numeric(df$Shoulder_Work...28), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.097805 1.909912 0.0561445 Kendall’s rank correlation tau two.sided

PHQ x Shoulder 7

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Shoulder7 = factor(Shoulder7, levels = c("No", "Yes"), ordered = TRUE)
  )

cor.test(as.numeric(df$PHQ), as.numeric(df$Shoulder7), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.1424113 2.780974 0.0054196 Kendall’s rank correlation tau two.sided

PHQ x Elbow Work Affected

library(dplyr)
library(broom)
library(knitr)

# Recode PHQ and BMI
df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Elbow_Work = factor(Elbow_Work, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$Elbow_Work), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
-0.0329235 -0.6429221 0.5202746 Kendall’s rank correlation tau two.sided

PHQ x Elbow 12

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Elbow12YN = factor(Elbow12YN, levels = c("No", "Yes"), ordered = TRUE)
  )

cor.test(as.numeric(df$PHQ), as.numeric(df$Elbow12YN), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
-0.0370059 -0.7226425 0.4698995 Kendall’s rank correlation tau two.sided

PHQ x Elbow 7

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Elbow7 = factor(Elbow7, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$Elbow7), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.0095815 0.1871043 0.8515789 Kendall’s rank correlation tau two.sided

PHQ x Wrist Work

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Wrist_Work = factor(Wrist_Work, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$Wrist_Work), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.129799 2.534684 0.0112549 Kendall’s rank correlation tau two.sided

PHQ x Wrist 12

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Wrist12YN = factor(Wrist12YN, levels = c("No", "Yes"), ordered = TRUE)
  )

cor.test(as.numeric(df$PHQ), as.numeric(df$Wrist12YN), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.1480178 2.890457 0.0038468 Kendall’s rank correlation tau two.sided

PHQ x Wrist 7

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Wrist7 = factor(Wrist7, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$Wrist7), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.0706331 1.379306 0.1678003 Kendall’s rank correlation tau two.sided

PHQ x Upper back 12

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    UBack12 = factor(UBack12, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$UBack12), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.1603816 3.131893 0.0017368 Kendall’s rank correlation tau two.sided

PHQ x Upper Back work affected

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Uback_Work = factor(Uback_Work, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$Uback_Work), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.1594557 3.113812 0.0018469 Kendall’s rank correlation tau two.sided

PHQ x Upper Back 7

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    UBack7 = factor(UBack7, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$UBack7), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.1984787 3.875845 0.0001063 Kendall’s rank correlation tau two.sided

PHQ x Low Back 12

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    LBack12 = factor(LBack12, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$LBack12), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.0720219 1.406427 0.1595975 Kendall’s rank correlation tau two.sided

PHQ x LBack 7

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    LBack7 = factor(LBack7, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$LBack7), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.174696 3.411421 0.0006463 Kendall’s rank correlation tau two.sided

PHQ x Low Back Work

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    LBack_Work = factor(LBack_Work, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$LBack_Work), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.1248491 2.438022 0.0147679 Kendall’s rank correlation tau two.sided

PHQ x Hip 12

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Hip12 = factor(Hip12, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$Hip12), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.0881992 1.722333 0.0850092 Kendall’s rank correlation tau two.sided

PHQ x Hip_Work

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Hip_Work = factor(Hip_Work, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$Hip_Work), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.0376797 0.7357995 0.4618527 Kendall’s rank correlation tau two.sided

PHQ x Hip 7

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Hip7 = factor(Hip7, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$Hip7), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.050917 0.9942942 0.3200797 Kendall’s rank correlation tau two.sided

PHQ x Knee 12

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Knee12 = factor(Knee12, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$Knee12), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.1023496 1.998659 0.0456453 Kendall’s rank correlation tau two.sided

PHQ x Knee_Work

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Knee_Work = factor(Knee_Work, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$Knee_Work), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.0874339 1.707389 0.0877498 Kendall’s rank correlation tau two.sided

PHQ x Knee 7

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Knee7 = factor(Knee7, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$Knee7), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.0891238 1.740388 0.0817909 Kendall’s rank correlation tau two.sided

PHQ x Feet 12

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Feet12 = factor(Feet12, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$Feet12), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.1247927 2.436922 0.0148129 Kendall’s rank correlation tau two.sided

PHQ x Feet Work Affected

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Feet_Work = factor(Feet_Work, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$Feet_Work), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.1478597 2.887369 0.0038848 Kendall’s rank correlation tau two.sided

PHQ x Feet 7

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Feet7 = factor(Feet7, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$Feet7), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.0774007 1.511462 0.1306708 Kendall’s rank correlation tau two.sided

PHQ x Hip_Work

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    Hip_Work = factor(Hip_Work, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$Hip_Work), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.0376797 0.7357995 0.4618527 Kendall’s rank correlation tau two.sided

PHQ x Any Pain 12

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    AnyPain12 = factor(AnyPain12, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$AnyPain12), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.1007059 1.96656 0.049234 Kendall’s rank correlation tau two.sided

PHQ x Any Pain 7

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
    AnyPain7 = factor(AnyPain7, levels = c("No", "Yes"), ordered = TRUE)
  )

# Correlation test
cor.test(as.numeric(df$PHQ), as.numeric(df$AnyPain7), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.1993799 3.893443 9.88e-05 Kendall’s rank correlation tau two.sided

PHQ x Total Sites 12

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
  )

# Correlation test
cor.test(as.numeric(df$PHQ), df$TotalSites12, method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.1935985 4.306867 1.66e-05 Kendall’s rank correlation tau two.sided

PHQ x Total Sites 7

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(
    PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
  )

# Correlation test
cor.test(as.numeric(df$PHQ), df$TotalSites7, method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.2245382 4.794886 1.6e-06 Kendall’s rank correlation tau two.sided

PHQ x Year Study

df <- df %>%
  mutate(Year_Study = factor(Year_Study, levels = c("1º", "2º", "3º", "4º", "5º"), ordered = TRUE),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE))
cor.test(as.numeric(df$PHQ), as.numeric(df$Year_Study), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
-0.0040213 -0.0875825 0.9302086 Kendall’s rank correlation tau two.sided

PHQ x Sex

df <- df %>%
  mutate(Sex = factor(Sex, levels = c("Female", "Male"), ordered = TRUE),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE))
cor.test(as.numeric(df$PHQ), as.numeric(df$Sex), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
-0.1001512 -1.955729 0.0504971 Kendall’s rank correlation tau two.sided

Jenkins x Any Pain 12

df <- df %>%
  mutate(AnyPain12 = factor(AnyPain12, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$JENKINS, as.numeric(df$AnyPain12), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.1053638 2.240829 0.0250372 Kendall’s rank correlation tau two.sided

Jenkins x Any Pain 7

df <- df %>%
  mutate(AnyPain7 = factor(AnyPain7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$JENKINS, as.numeric(df$AnyPain7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.215505 4.583259 4.6e-06 Kendall’s rank correlation tau two.sided

Jenkins x Total Sites 12

cor.test(df$JENKINS, df$TotalSites12, method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.1910357 4.627565 3.7e-06 Kendall’s rank correlation tau two.sided

Jenkins x Total Sites 7

cor.test(df$JENKINS, df$TotalSites7, method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.2371315 5.514236 0 Kendall’s rank correlation tau two.sided

Jenkins x Neck 12

df <- df %>%
  mutate(Neck12 = factor(Neck12, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$JENKINS, as.numeric(df$Neck12), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.143414 3.050063 0.0022879 Kendall’s rank correlation tau two.sided

Jenkins x Neck 7

df <- df %>%
  mutate(Neck7 = factor(Neck7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$JENKINS, as.numeric(df$Neck7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.1182256 2.514366 0.0119247 Kendall’s rank correlation tau two.sided

Jenkins x Shoulder 12

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(Shoulder12YN = factor(Shoulder12YN, levels = c("No", "Yes"), ordered = TRUE))

cor.test(df$JENKINS, as.numeric(df$Shoulder12YN), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.0882801 1.877499 0.0604497 Kendall’s rank correlation tau two.sided

Jenkins x Shoulder 7

df <- df %>%
  mutate(Shoulder7 = factor(Shoulder7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$JENKINS, as.numeric(df$Shoulder7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.1330566 2.829785 0.0046579 Kendall’s rank correlation tau two.sided

Jenkins x Elbow 12

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(Elbow12YN = factor(Elbow12YN, levels = c("No", "Yes"), ordered = TRUE))

cor.test(df$JENKINS, as.numeric(df$Elbow12YN), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
-0.0208964 -0.4444158 0.656742 Kendall’s rank correlation tau two.sided

Jenkins x Elbow 7

df <- df %>%
  mutate(Elbow7 = factor(Elbow7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$JENKINS, as.numeric(df$Elbow7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.0100756 0.2142836 0.8303259 Kendall’s rank correlation tau two.sided

Jenkins x Wrist 12

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(Wrist12YN = factor(Wrist12YN, levels = c("No", "Yes"), ordered = TRUE))

cor.test(df$JENKINS, as.numeric(df$Wrist12YN), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.1840309 3.913883 9.08e-05 Kendall’s rank correlation tau two.sided

Jenkins x Wrist 7

df <- df %>%
  mutate(Wrist7 = factor(Wrist7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$JENKINS, as.numeric(df$Wrist7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.1416647 3.012859 0.002588 Kendall’s rank correlation tau two.sided

Jenkins x Upper Back 12

df <- df %>%
  mutate(UBack12 = factor(UBack12, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$JENKINS, as.numeric(df$UBack12), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.1843375 3.920404 8.84e-05 Kendall’s rank correlation tau two.sided

Jenkins x Upper Back 7

df <- df %>%
  mutate(UBack7 = factor(UBack7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$JENKINS, as.numeric(df$UBack7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.1570743 3.340582 0.000836 Kendall’s rank correlation tau two.sided

Jenkins x Low back 12

df <- df %>%
  mutate(LBack12 = factor(LBack12, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$JENKINS, as.numeric(df$LBack12), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.107787 2.292362 0.0218847 Kendall’s rank correlation tau two.sided

Jenkins x Low back 7

df <- df %>%
  mutate(LBack7 = factor(LBack7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$JENKINS, as.numeric(df$LBack7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.1836836 3.906498 9.36e-05 Kendall’s rank correlation tau two.sided

Jenkins x Hip 12

df <- df %>%
  mutate(Hip12 = factor(Hip12, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$JENKINS, as.numeric(df$Hip12), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
-0.0009543 -0.0202951 0.9838079 Kendall’s rank correlation tau two.sided

Jenkins x Hip 7

df <- df %>%
  mutate(Hip7 = factor(Hip7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$JENKINS, as.numeric(df$Hip7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.0390674 0.8308676 0.4060484 Kendall’s rank correlation tau two.sided

Jenkins x Knee 12

df <- df %>%
  mutate(Knee12 = factor(Knee12, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$JENKINS, as.numeric(df$Knee12), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.059159 1.258166 0.2083317 Kendall’s rank correlation tau two.sided

Jenkins x Knee 7

df <- df %>%
  mutate(Knee7 = factor(Knee7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$JENKINS, as.numeric(df$Knee7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.0874958 1.860819 0.0627698 Kendall’s rank correlation tau two.sided

Jenkins x Feet 12

df <- df %>%
  mutate(Feet12 = factor(Feet12, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$JENKINS, as.numeric(df$Feet12), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.0543762 1.156447 0.2474985 Kendall’s rank correlation tau two.sided

Jenkins x Feet 7

df <- df %>%
  mutate(Feet7 = factor(Feet7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$JENKINS, as.numeric(df$Feet7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.0496088 1.055058 0.2913989 Kendall’s rank correlation tau two.sided

Jenkins x Year Study

df <- df %>%
  mutate(Year_Study = factor(Year_Study, levels = c("1º", "2º", "3º", "4º", "5º"), ordered = TRUE),
         )
cor.test((df$JENKINS), as.numeric(df$Year_Study), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
-0.0323364 -0.7668969 0.4431428 Kendall’s rank correlation tau two.sided

Jenkins x Sex

df <- df %>%
  mutate(Sex = factor(Sex, levels = c("Female", "Male"), ordered = TRUE),
         )
cor.test((df$JENKINS), as.numeric(df$Sex), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
-0.0582637 -1.239126 0.2152988 Kendall’s rank correlation tau two.sided

WorkHrs x Any Pain 12

df <- df %>%
  mutate(AnyPain12 = factor(AnyPain12, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$`Work_Hr/Wk`, as.numeric(df$AnyPain12), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.0907639 1.968494 0.0490112 Kendall’s rank correlation tau two.sided

WorkHrs x Any Pain 7

df <- df %>%
  mutate(AnyPain7 = factor(AnyPain7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$`Work_Hr/Wk`, as.numeric(df$AnyPain7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.160678 3.484798 0.0004925 Kendall’s rank correlation tau two.sided

WorkHrs x Total Sites 12

cor.test(df$`Work_Hr/Wk`, df$TotalSites12, method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.1454548 3.592926 0.000327 Kendall’s rank correlation tau two.sided

WorkHrs x Total Sites 7

cor.test(df$`Work_Hr/Wk`, df$TotalSites7, method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.1511149 3.583382 0.0003392 Kendall’s rank correlation tau two.sided

WorkHrs x Neck 12

df <- df %>%
  mutate(Neck12 = factor(Neck12, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$`Work_Hr/Wk`, as.numeric(df$Neck12), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.0389866 0.8455457 0.3978063 Kendall’s rank correlation tau two.sided

WorkHrs x Neck 7

df <- df %>%
  mutate(Neck7 = factor(Neck7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$`Work_Hr/Wk`, as.numeric(df$Neck7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.0710087 1.540043 0.1235498 Kendall’s rank correlation tau two.sided

WorkHrs x Shoulder 12

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(Shoulder12YN = factor(Shoulder12YN, levels = c("No", "Yes"), ordered = TRUE))

cor.test(df$`Work_Hr/Wk`, as.numeric(df$Shoulder12YN), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.067087 1.454988 0.1456726 Kendall’s rank correlation tau two.sided

WorkHrs x Shoulder 7

df <- df %>%
  mutate(Shoulder7 = factor(Shoulder7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$`Work_Hr/Wk`, as.numeric(df$Shoulder7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.1071202 2.323233 0.0201666 Kendall’s rank correlation tau two.sided

WorkHrs x Elbow 12

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(Elbow12YN = factor(Elbow12YN, levels = c("No", "Yes"), ordered = TRUE))

cor.test(df$`Work_Hr/Wk`, as.numeric(df$Elbow12YN), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
-0.033166 -0.7193065 0.4719521 Kendall’s rank correlation tau two.sided

WorkHrs x Elbow 7

df <- df %>%
  mutate(Elbow7 = factor(Elbow7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$`Work_Hr/Wk`, as.numeric(df$Elbow7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
-0.0637771 -1.383203 0.1666027 Kendall’s rank correlation tau two.sided

WorkHrs x Wrist 12

library(dplyr)
library(broom)
library(knitr)

df <- df %>%
  mutate(Wrist12YN = factor(Wrist12YN, levels = c("No", "Yes"), ordered = TRUE))

cor.test(df$`Work_Hr/Wk`, as.numeric(df$Wrist12YN), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.1116179 2.42078 0.0154873 Kendall’s rank correlation tau two.sided

WorkHrs x Wrist 7

df <- df %>%
  mutate(Wrist7 = factor(Wrist7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$`Work_Hr/Wk`, as.numeric(df$Wrist7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.0844847 1.832312 0.0669049 Kendall’s rank correlation tau two.sided

WorkHrs x Upper Back 12

df <- df %>%
  mutate(UBack12 = factor(UBack12, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$`Work_Hr/Wk`, as.numeric(df$UBack12), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.1602751 3.476061 0.0005088 Kendall’s rank correlation tau two.sided

WorkHrs x Upper Back 7

df <- df %>%
  mutate(UBack7 = factor(UBack7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$`Work_Hr/Wk`, as.numeric(df$UBack7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.0931758 2.020806 0.0432999 Kendall’s rank correlation tau two.sided

WorkHrs x Low back 12

df <- df %>%
  mutate(LBack12 = factor(LBack12, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$`Work_Hr/Wk`, as.numeric(df$LBack12), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.1467423 3.18256 0.0014598 Kendall’s rank correlation tau two.sided

WorkHrs x Low back 7

df <- df %>%
  mutate(LBack7 = factor(LBack7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$`Work_Hr/Wk`, as.numeric(df$LBack7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.1074923 2.331301 0.0197375 Kendall’s rank correlation tau two.sided

WorkHrs x Hip 12

df <- df %>%
  mutate(Hip12 = factor(Hip12, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$`Work_Hr/Wk`, as.numeric(df$Hip12), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
-0.0301188 -0.6532186 0.5136154 Kendall’s rank correlation tau two.sided

WorkHrs x Hip 7

df <- df %>%
  mutate(Hip7 = factor(Hip7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$`Work_Hr/Wk`, as.numeric(df$Hip7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.0019746 0.0428242 0.9658417 Kendall’s rank correlation tau two.sided

WorkHrs x Knee 12

df <- df %>%
  mutate(Knee12 = factor(Knee12, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$`Work_Hr/Wk`, as.numeric(df$Knee12), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.1068095 2.316495 0.0205313 Kendall’s rank correlation tau two.sided

WorkHrs x Knee 7

df <- df %>%
  mutate(Knee7 = factor(Knee7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$`Work_Hr/Wk`, as.numeric(df$Knee7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.0683448 1.482268 0.1382691 Kendall’s rank correlation tau two.sided

WorkHrs x Feet 12

df <- df %>%
  mutate(Feet12 = factor(Feet12, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$`Work_Hr/Wk`, as.numeric(df$Feet12), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.0827773 1.795281 0.0726089 Kendall’s rank correlation tau two.sided

WorkHrs x Feet 7

df <- df %>%
  mutate(Feet7 = factor(Feet7, levels = c("No", "Yes"), ordered = TRUE))
cor.test(df$`Work_Hr/Wk`, as.numeric(df$Feet7), method = "kendall") |> 
    tidy() |> 
    kable() 
estimate statistic p.value method alternative
0.0543175 1.178042 0.23878 Kendall’s rank correlation tau two.sided

WorkHrs x Year Study

df <- df %>%
  mutate(Year_Study = factor(Year_Study, levels = c("1º", "2º", "3º", "4º", "5º"), ordered = TRUE),
         )
cor.test((df$`Work_Hr/Wk`), as.numeric(df$Year_Study), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.1063212 2.57129 0.0101321 Kendall’s rank correlation tau two.sided

WorkHrs x Sex

df <- df %>%
  mutate(Sex = factor(Sex, levels = c("Female", "Male"), ordered = TRUE),
         )
cor.test((df$`Work_Hr/Wk`), as.numeric(df$Sex), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
-0.0462435 -1.002933 0.3158934 Kendall’s rank correlation tau two.sided

WorkHrs x Depression

df <- df %>%
  mutate(PHQ = factor(PHQ, levels = c("Minimal", "Mild","Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
         )
cor.test((df$`Work_Hr/Wk`), as.numeric(df$PHQ), method = "kendall") |>
  tidy() |>
  kable()
estimate statistic p.value method alternative
0.0215756 0.505203 0.6134163 Kendall’s rank correlation tau two.sided

May 7

Specific Nordic Questionnaire - Low back

freq <- table(df$LB_Freq12)["1-7 days"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.3780488 19.02744 1.29e-05 1 0.325804 0.4331985 1-sample proportions test with continuity correction two.sided
freq <- table(df$LB_Freq12)["0 days"]
prop.test(n-freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.5762195 7.320122 0.0068187 1 0.5206307 0.6299936 1-sample proportions test with continuity correction two.sided
freq <- table(df$LB_Freq12)["8-30 days"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1006098 207.686 0 1 0.071247 0.1396456 1-sample proportions test with continuity correction two.sided
freq <- table(df$LB_Freq12)["More than 30 days, but not every day"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0762195 233.9299 0 1 0.0509073 0.1118537 1-sample proportions test with continuity correction two.sided
freq <- table(df$LB_Freq12)["Every day "]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0213415 298.686 0 1 0.0093833 0.0453938 1-sample proportions test with continuity correction two.sided
freq <- table(df$LB_Freq12)
df |> 
    count(LB_Freq12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
LB_Freq12 n Percentage
0 days 139 42.378049
1-7 days 124 37.804878
8-30 days 33 10.060976
Every day  7 2.134146
More than 30 days, but not every day 25 7.621951
freq <- table(df$LB_Freq12)

Number of days of work affected

df |> 
    count(LB_Freq_Work) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
LB_Freq_Work n Percentage
0 days 272 82.9268293
1-7 days 45 13.7195122
8-30 days 8 2.4390244
Mas de 30 days 3 0.9146341
freq <- table(df$LB_Freq_Work)["1-7 days"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1371951 171.247 0 1 0.1028038 0.180326 1-sample proportions test with continuity correction two.sided
freq <- table(df$LB_Freq_Work)["0 days"]
prop.test(n-freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1707317 140.9299 0 1 0.132515 0.2168542 1-sample proportions test with continuity correction two.sided
freq <- table(df$LB_Freq_Work)["8-30 days"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0243902 294.8811 0 1 0.0113847 0.0493565 1-sample proportions test with continuity correction two.sided
freq <- table(df$LB_Freq_Work)["Mas de 30 days"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0091463 314.1494 0 1 0.0023651 0.0287569 1-sample proportions test with continuity correction two.sided

Specific Nordic Questionnaire - Neck

freq <- table(df$Neck_Freq12)["1-7 days"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.304878 49.17378 0 1 0.2561166 0.3582943 1-sample proportions test with continuity correction two.sided
freq <- table(df$Neck_Freq12)["0 days"]
prop.test(n-freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.5640244 5.125 0.0235836 1 0.5083972 0.6181274 1-sample proportions test with continuity correction two.sided
freq <- table(df$Neck_Freq12)["8-30 days"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1402439 168.3689 0 1 0.1054775 0.1836733 1-sample proportions test with continuity correction two.sided
freq <- table(df$Neck_Freq12)["More than 30 days, but not every day"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.097561 210.8811 0 1 0.0686686 0.1362059 1-sample proportions test with continuity correction two.sided
freq <- table(df$Neck_Freq12)["Every day"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0213415 298.686 0 1 0.0093833 0.0453938 1-sample proportions test with continuity correction two.sided
freq <- table(df$Neck_Freq12)
df |> 
    count(Neck_Freq12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Neck_Freq12 n Percentage
0 days 143 43.597561
1-7 days 100 30.487805
8-30 days 46 14.024390
Every day 7 2.134146
More than 30 days, but not every day 32 9.756098

Number of days of work affected

df |> 
    count(Neck_Freq_Work) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Neck_Freq_Work n Percentage
0 days 250 76.219512
1-7 days 62 18.902439
8-30 days 12 3.658537
More than 30 days 4 1.219512
freq <- table(df$Neck_Freq_Work)["1-7 days"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1890244 125.6372 0 1 0.1489673 0.2365379 1-sample proportions test with continuity correction two.sided
freq <- table(df$Neck_Freq_Work)["0 days"]
prop.test(n-freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.2378049 89.14939 0 1 0.1935265 0.2883529 1-sample proportions test with continuity correction two.sided
freq <- table(df$Neck_Freq_Work)["8-30 days"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0365854 279.9055 0 1 0.0199344 0.0647391 1-sample proportions test with continuity correction two.sided
freq <- table(df$Neck_Freq_Work)["More than 30 days"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0121951 310.247 0 1 0.0039137 0.0330721 1-sample proportions test with continuity correction two.sided

Specific Nordic Questionnaire - Shoulders

freq <- table(df$Shoulder_Freq12)["1-7 days"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0945122 214.1006 0 1 0.0660996 0.1327573 1-sample proportions test with continuity correction two.sided
freq <- table(df$Shoulder_Freq12)["0 days"]
prop.test(n-freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.195122 120.7348 0 1 0.1544851 0.243066 1-sample proportions test with continuity correction two.sided
freq <- table(df$Shoulder_Freq12)["8-30 days"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0487805 265.3201 0 1 0.0290736 0.0795968 1-sample proportions test with continuity correction two.sided
freq <- table(df$Shoulder_Freq12)["More than 30 days, but not every day"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0396341 276.2226 0 1 0.0221742 0.0684943 1-sample proportions test with continuity correction two.sided
freq <- table(df$Shoulder_Freq12)["Every day"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0121951 310.247 0 1 0.0039137 0.0330721 1-sample proportions test with continuity correction two.sided
freq <- table(df$Shoulder_Freq12)
df |> 
    count(Shoulder_Freq12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Shoulder_Freq12 n Percentage
0 days 264 80.487805
1-7 days 31 9.451220
8-30 days 16 4.878049
Every day 4 1.219512
More than 30 days, but not every day 13 3.963415

Number of days of work affected

df |> 
    count(Shoulder_Freq_Work) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Shoulder_Freq_Work n Percentage
0 days 310 94.5121951
1-7 days 14 4.2682927
8-30 days 3 0.9146341
More than 30 days 1 0.3048780
freq <- table(df$Shoulder_Freq_Work)["1-7 days"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0426829 272.564 0 1 0.024446 0.0722206 1-sample proportions test with continuity correction two.sided
freq <- table(df$Shoulder_Freq_Work)["0 days"]
prop.test(n-freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.054878 258.1738 0 1 0.0337974 0.0868846 1-sample proportions test with continuity correction two.sided
freq <- table(df$Shoulder_Freq_Work)["8-30 days"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0091463 314.1494 0 1 0.0023651 0.0287569 1-sample proportions test with continuity correction two.sided
freq <- table(df$Shoulder_Freq_Work)["More than 30 days"]
prop.test(freq, n) |> 
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0030488 322.0274 0 1 0.0001592 0.0195598 1-sample proportions test with continuity correction two.sided
freq <- table(df$Shoulder_Acc)["No"]
# Proportion test (require frequency of "Yes", sample size)
prop.test(n-freq, n) |> 
    tidy() |> 
    kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.070122 240.7348 0 1 0.0459408 0.1047929 1-sample proportions test with continuity correction two.sided

Stratification of SNQ by Year

Neck

df |> 
    group_by(Year_Study) |>
    count(Neck12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Neck12 n Percentage
No 41 48.80952
Yes 43 51.19048
No 30 40.00000
Yes 45 60.00000
No 14 25.00000
Yes 42 75.00000
No 26 40.62500
Yes 38 59.37500
No 16 32.65306
Yes 33 67.34694
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Neck12 == "Yes", na.rm = TRUE),
    n = sum(!is.na(Neck12))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
43 84 0.512 0.401 0.622 0.913000
45 75 0.600 0.480 0.709 0.106000
42 56 0.750 0.614 0.852 0.000309
38 64 0.594 0.464 0.712 0.169000
33 49 0.673 0.523 0.796 0.022300
df |> 
  group_by(Year_Study) |>  
  count(Neck_Work...24) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Neck_Work…24 n Percentage
No 77 91.666667
Yes 7 8.333333
No 58 77.333333
Yes 17 22.666667
No 44 78.571429
Yes 12 21.428571
No 50 78.125000
Yes 14 21.875000
No 40 81.632653
Yes 9 18.367347
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Neck_Work...24 == "Yes", na.rm = TRUE),
    n = sum(!is.na(Neck_Work...24))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
7 84 0.083 0.037 0.170 0.00e+00
17 75 0.227 0.141 0.341 3.90e-06
12 56 0.214 0.120 0.348 3.43e-05
14 64 0.219 0.129 0.343 1.21e-05
9 49 0.184 0.092 0.325 1.82e-05
df |> 
  group_by(Year_Study) |>  
  count(Neck7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Neck7 n Percentage
No 61 72.61905
Yes 23 27.38095
No 53 70.66667
Yes 22 29.33333
No 33 58.92857
Yes 23 41.07143
No 41 64.06250
Yes 23 35.93750
No 39 79.59184
Yes 10 20.40816
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Neck7 == "Yes", na.rm = TRUE),
    n = sum(!is.na(Neck7))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
23 84 0.274 0.185 0.384 5.41e-05
22 75 0.293 0.197 0.411 5.32e-04
23 56 0.411 0.284 0.550 2.29e-01
23 64 0.359 0.246 0.490 3.36e-02
10 49 0.204 0.107 0.348 6.33e-05

Shoulder

df |> 
  mutate(Shoulder12 = ifelse(Shoulder12 == "No", "No", "Yes")) |> 
  group_by(Year_Study, Shoulder12) |> 
  summarise(n = n(), .groups = "drop") |> 
  group_by(Year_Study) |>  # Group again to compute percentage within each year
  mutate(Percentage = n / sum(n) * 100) |> 
  kable()
Year_Study Shoulder12 n Percentage
No 59 70.23810
Yes 25 29.76190
No 47 62.66667
Yes 28 37.33333
No 34 60.71429
Yes 22 39.28571
No 37 57.81250
Yes 27 42.18750
No 32 65.30612
Yes 17 34.69388
df |> 
    group_by(Year_Study) |>
    count(Shoulder12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Shoulder12 n Percentage
No 59 70.238095
Yes, in BOTH shoulders  16 19.047619
Yes, in the LEFT shoulder 2 2.380952
Yes, in the RIGHT shoulder 7 8.333333
No 47 62.666667
Yes, in BOTH shoulders  19 25.333333
Yes, in the LEFT shoulder 5 6.666667
Yes, in the RIGHT shoulder 4 5.333333
No 34 60.714286
Yes, in BOTH shoulders  16 28.571429
Yes, in the LEFT shoulder 1 1.785714
Yes, in the RIGHT shoulder 5 8.928571
No 37 57.812500
Yes, in BOTH shoulders  17 26.562500
Yes, in the LEFT shoulder 4 6.250000
Yes, in the RIGHT shoulder 6 9.375000
No 32 65.306122
Yes, in BOTH shoulders  10 20.408163
Yes, in the LEFT shoulder 3 6.122449
Yes, in the RIGHT shoulder 4 8.163265
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Shoulder12 == "No", na.rm = TRUE),
    n = sum(!is.na(Shoulder12))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(n-freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
59 84 0.298 0.205 0.409 0.000317
47 75 0.373 0.267 0.493 0.037700
34 56 0.393 0.268 0.532 0.142000
37 64 0.422 0.302 0.552 0.261000
32 49 0.347 0.221 0.497 0.045500
df |> 
    group_by(Year_Study) |>
    count(Shoulder_Work...28) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Shoulder_Work…28 n Percentage
No 80 95.238095
Yes 4 4.761905
No 70 93.333333
Yes 5 6.666667
No 53 94.642857
Yes 3 5.357143
No 54 84.375000
Yes 10 15.625000
No 49 100.000000
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Shoulder_Work...28 == "Yes", na.rm = TRUE),
    n = sum(!is.na(Shoulder_Work...28))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
4 84 0.048 0.015 0.124 0e+00
5 75 0.067 0.025 0.155 0e+00
3 56 0.054 0.014 0.158 0e+00
10 64 0.156 0.081 0.273 1e-07
0 49 0.000 0.000 0.091 0e+00
df |> 
    group_by(Year_Study) |>
    count(Shoulder7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Shoulder7 n Percentage
No 70 83.33333
Yes 14 16.66667
No 63 84.00000
Yes 12 16.00000
No 49 87.50000
Yes 7 12.50000
No 48 75.00000
Yes 16 25.00000
No 42 85.71429
Yes 7 14.28571
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Shoulder7 == "Yes", na.rm = TRUE),
    n = sum(!is.na(Shoulder7))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
14 84 0.167 0.097 0.267 0.00e+00
12 75 0.160 0.089 0.267 0.00e+00
7 56 0.125 0.056 0.247 0.00e+00
16 64 0.250 0.154 0.377 1.07e-04
7 49 0.143 0.064 0.279 1.20e-06

Elbow

df |> 
  mutate(Elbow12 = ifelse(Elbow12 == "No", "No", "Yes")) |> 
  group_by(Year_Study, Elbow12) |> 
  summarise(n = n(), .groups = "drop") |> 
  group_by(Year_Study) |>  # Group again to compute percentage within each year
  mutate(Percentage = n / sum(n) * 100) |> 
  kable()
Year_Study Elbow12 n Percentage
No 81 96.428571
Yes 3 3.571429
No 70 93.333333
Yes 5 6.666667
No 55 98.214286
Yes 1 1.785714
No 59 92.187500
Yes 5 7.812500
No 45 91.836735
Yes 4 8.163265
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  # Recode all "Yes" variations into a single "Yes"
  mutate(Elbow12 = ifelse(Elbow12 == "No", "No", "Yes")) %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Elbow12 == "Yes" & !is.na(Elbow12)),
    n = sum(!is.na(Elbow12))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))  # Testing proportion of "Yes"
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
3 84 0.036 0.009 0.108 0
5 75 0.067 0.025 0.155 0
1 56 0.018 0.001 0.108 0
5 64 0.078 0.029 0.180 0
4 49 0.082 0.026 0.205 0
df |> 
    group_by(Year_Study) |>
    count(Elbow_Work) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Elbow_Work n Percentage
No 83 98.809524
Yes 1 1.190476
No 72 96.000000
Yes 3 4.000000
No 56 100.000000
No 62 96.875000
Yes 2 3.125000
No 47 95.918367
Yes 2 4.081633
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Elbow_Work == "Yes", na.rm = TRUE),
    n = sum(!is.na(Elbow_Work))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
1 84 0.012 0.001 0.074 0
3 75 0.040 0.010 0.120 0
0 56 0.000 0.000 0.080 0
2 64 0.031 0.005 0.118 0
2 49 0.041 0.007 0.151 0
df |> 
    group_by(Year_Study) |>
    count(Elbow7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Elbow7 n Percentage
No 83 98.809524
Yes 1 1.190476
No 72 96.000000
Yes 3 4.000000
No 56 100.000000
No 61 95.312500
Yes 3 4.687500
No 48 97.959184
Yes 1 2.040816
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Elbow7 == "Yes", na.rm = TRUE),
    n = sum(!is.na(Elbow7))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
1 84 0.012 0.001 0.074 0
3 75 0.040 0.010 0.120 0
0 56 0.000 0.000 0.080 0
3 64 0.047 0.012 0.140 0
1 49 0.020 0.001 0.122 0

Wrist

df |> 
  mutate(Wrist12 = ifelse(Wrist12 == "No", "No", "Yes")) |> 
  group_by(Year_Study, Wrist12) |> 
  summarise(n = n(), .groups = "drop") |> 
  group_by(Year_Study) |>  # Group again to compute percentage within each year
  mutate(Percentage = n / sum(n) * 100) |> 
  kable()
Year_Study Wrist12 n Percentage
No 64 76.19048
Yes 20 23.80952
No 66 88.00000
Yes 9 12.00000
No 39 69.64286
Yes 17 30.35714
No 51 79.68750
Yes 13 20.31250
No 31 63.26531
Yes 18 36.73469
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  # Recode all "Yes" variations into a single "Yes"
  mutate(Wrist12 = ifelse(Wrist12 == "No", "No", "Yes")) %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Wrist12 == "Yes" & !is.na(Wrist12)),
    n = sum(!is.na(Wrist12))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))  # Testing proportion of "Yes"
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
20 84 0.238 0.155 0.346 2.70e-06
9 75 0.120 0.060 0.220 0.00e+00
17 56 0.304 0.192 0.443 5.01e-03
13 64 0.203 0.117 0.326 3.80e-06
18 49 0.367 0.238 0.517 8.65e-02
df |> 
    group_by(Year_Study) |>
    count(Wrist_Work) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Wrist_Work n Percentage
No 81 96.428571
Yes 3 3.571429
No 70 93.333333
Yes 5 6.666667
No 49 87.500000
Yes 7 12.500000
No 60 93.750000
Yes 4 6.250000
No 46 93.877551
Yes 3 6.122449
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Wrist_Work == "Yes", na.rm = TRUE),
    n = sum(!is.na(Wrist_Work))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
3 84 0.036 0.009 0.108 0
5 75 0.067 0.025 0.155 0
7 56 0.125 0.056 0.247 0
4 64 0.062 0.020 0.160 0
3 49 0.061 0.016 0.179 0
df |> 
    group_by(Year_Study) |>
    count(Wrist7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Wrist7 n Percentage
No 79 94.047619
Yes 5 5.952381
No 71 94.666667
Yes 4 5.333333
No 49 87.500000
Yes 7 12.500000
No 61 95.312500
Yes 3 4.687500
No 43 87.755102
Yes 6 12.244898
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Wrist7 == "Yes", na.rm = TRUE),
    n = sum(!is.na(Wrist7))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
5 84 0.060 0.022 0.140 0e+00
4 75 0.053 0.017 0.138 0e+00
7 56 0.125 0.056 0.247 0e+00
3 64 0.047 0.012 0.140 0e+00
6 49 0.122 0.051 0.255 3e-07

Upper back

df |> 
    group_by(Year_Study) |>
    count(UBack12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study UBack12 n Percentage
No 49 58.33333
Yes 35 41.66667
No 52 69.33333
Yes 23 30.66667
No 26 46.42857
Yes 30 53.57143
No 36 56.25000
Yes 28 43.75000
No 31 63.26531
Yes 18 36.73469
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(UBack12 == "Yes", na.rm = TRUE),
    n = sum(!is.na(UBack12))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
35 84 0.417 0.312 0.529 0.15600
23 75 0.307 0.208 0.425 0.00122
30 56 0.536 0.399 0.668 0.68800
28 64 0.438 0.316 0.567 0.38200
18 49 0.367 0.238 0.517 0.08650
df |> 
  group_by(Year_Study) |>  
  count(Uback_Work) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Uback_Work n Percentage
No 79 94.047619
Yes 5 5.952381
No 69 92.000000
Yes 6 8.000000
No 44 78.571429
Yes 12 21.428571
No 54 84.375000
Yes 10 15.625000
No 46 93.877551
Yes 3 6.122449
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Uback_Work == "Yes", na.rm = TRUE),
    n = sum(!is.na(Uback_Work))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
5 84 0.060 0.022 0.140 0.00e+00
6 75 0.080 0.033 0.172 0.00e+00
12 56 0.214 0.120 0.348 3.43e-05
10 64 0.156 0.081 0.273 1.00e-07
3 49 0.061 0.016 0.179 0.00e+00
df |> 
  group_by(Year_Study) |>  
  count(UBack7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study UBack7 n Percentage
No 70 83.33333
Yes 14 16.66667
No 64 85.33333
Yes 11 14.66667
No 41 73.21429
Yes 15 26.78571
No 53 82.81250
Yes 11 17.18750
No 42 85.71429
Yes 7 14.28571
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(UBack7 == "Yes", na.rm = TRUE),
    n = sum(!is.na(UBack7))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
14 84 0.167 0.097 0.267 0.00e+00
11 75 0.147 0.079 0.252 0.00e+00
15 56 0.268 0.162 0.405 8.35e-04
11 64 0.172 0.093 0.291 3.00e-07
7 49 0.143 0.064 0.279 1.20e-06

Lower Back

df |> 
    group_by(Year_Study) |>
    count(LBack12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study LBack12 n Percentage
No 42 50.00000
Yes 42 50.00000
No 50 66.66667
Yes 25 33.33333
No 23 41.07143
Yes 33 58.92857
No 33 51.56250
Yes 31 48.43750
No 26 53.06122
Yes 23 46.93878
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(LBack12 == "Yes", na.rm = TRUE),
    n = sum(!is.na(LBack12))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
42 84 0.500 0.395 0.605 1.00000
25 75 0.333 0.231 0.453 0.00558
33 56 0.589 0.450 0.716 0.22900
31 64 0.484 0.359 0.612 0.90100
23 49 0.469 0.328 0.616 0.77500
df |> 
  group_by(Year_Study) |>  
  count(LBack_Work) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study LBack_Work n Percentage
No 70 83.333333
Yes 14 16.666667
No 72 96.000000
Yes 3 4.000000
No 44 78.571429
Yes 12 21.428571
No 53 82.812500
Yes 11 17.187500
No 48 97.959184
Yes 1 2.040816
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(LBack_Work == "Yes", na.rm = TRUE),
    n = sum(!is.na(LBack_Work))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
14 84 0.167 0.097 0.267 0.00e+00
3 75 0.040 0.010 0.120 0.00e+00
12 56 0.214 0.120 0.348 3.43e-05
11 64 0.172 0.093 0.291 3.00e-07
1 49 0.020 0.001 0.122 0.00e+00
df |> 
  group_by(Year_Study) |>  
  count(LBack7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study LBack7 n Percentage
No 59 70.23810
Yes 25 29.76190
No 61 81.33333
Yes 14 18.66667
No 42 75.00000
Yes 14 25.00000
No 53 82.81250
Yes 11 17.18750
No 39 79.59184
Yes 10 20.40816
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(LBack7 == "Yes", na.rm = TRUE),
    n = sum(!is.na(LBack7))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
25 84 0.298 0.205 0.409 3.17e-04
14 75 0.187 0.109 0.297 1.00e-07
14 56 0.250 0.148 0.386 3.09e-04
11 64 0.172 0.093 0.291 3.00e-07
10 49 0.204 0.107 0.348 6.33e-05

Hips

df |> 
    group_by(Year_Study) |>
    count(Hip12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Hip12 n Percentage
No 77 91.666667
Yes 7 8.333333
No 67 89.333333
Yes 8 10.666667
No 52 92.857143
Yes 4 7.142857
No 58 90.625000
Yes 6 9.375000
No 44 89.795918
Yes 5 10.204082
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Hip12 == "Yes", na.rm = TRUE),
    n = sum(!is.na(Hip12))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
7 84 0.083 0.037 0.170 0e+00
8 75 0.107 0.050 0.205 0e+00
4 56 0.071 0.023 0.181 0e+00
6 64 0.094 0.039 0.199 0e+00
5 49 0.102 0.038 0.230 1e-07
df |> 
  group_by(Year_Study) |>  
  count(Hip_Work) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Hip_Work n Percentage
No 83 98.809524
Yes 1 1.190476
No 73 97.333333
Yes 2 2.666667
No 54 96.428571
Yes 2 3.571429
No 60 93.750000
Yes 4 6.250000
No 48 97.959184
Yes 1 2.040816
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Hip_Work == "Yes", na.rm = TRUE),
    n = sum(!is.na(Hip_Work))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
1 84 0.012 0.001 0.074 0
2 75 0.027 0.005 0.102 0
2 56 0.036 0.006 0.134 0
4 64 0.062 0.020 0.160 0
1 49 0.020 0.001 0.122 0
df |> 
  group_by(Year_Study) |>  
  count(Hip7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Hip7 n Percentage
No 82 97.619048
Yes 2 2.380952
No 73 97.333333
Yes 2 2.666667
No 55 98.214286
Yes 1 1.785714
No 61 95.312500
Yes 3 4.687500
No 48 97.959184
Yes 1 2.040816
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Hip7 == "Yes", na.rm = TRUE),
    n = sum(!is.na(Hip7))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
2 84 0.024 0.004 0.091 0
2 75 0.027 0.005 0.102 0
1 56 0.018 0.001 0.108 0
3 64 0.047 0.012 0.140 0
1 49 0.020 0.001 0.122 0

Knees

df |> 
    group_by(Year_Study) |>
    count(Knee12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Knee12 n Percentage
No 66 78.57143
Yes 18 21.42857
No 59 78.66667
Yes 16 21.33333
No 46 82.14286
Yes 10 17.85714
No 48 75.00000
Yes 16 25.00000
No 40 81.63265
Yes 9 18.36735
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Knee12 == "Yes", na.rm = TRUE),
    n = sum(!is.na(Knee12))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
18 84 0.214 0.135 0.320 3.00e-07
16 75 0.213 0.130 0.326 1.20e-06
10 56 0.179 0.093 0.308 2.90e-06
16 64 0.250 0.154 0.377 1.07e-04
9 49 0.184 0.092 0.325 1.82e-05
df |> 
  group_by(Year_Study) |>  
  count(Knee_Work) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Knee_Work n Percentage
No 75 89.285714
Yes 9 10.714286
No 70 93.333333
Yes 5 6.666667
No 51 91.071429
Yes 5 8.928571
No 52 81.250000
Yes 12 18.750000
No 46 93.877551
Yes 3 6.122449
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Knee_Work == "Yes", na.rm = TRUE),
    n = sum(!is.na(Knee_Work))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
9 84 0.107 0.053 0.198 0.0e+00
5 75 0.067 0.025 0.155 0.0e+00
5 56 0.089 0.033 0.204 0.0e+00
12 64 0.188 0.105 0.308 1.1e-06
3 49 0.061 0.016 0.179 0.0e+00
df |> 
  group_by(Year_Study) |>  
  count(Knee7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Knee7 n Percentage
No 77 91.666667
Yes 7 8.333333
No 68 90.666667
Yes 7 9.333333
No 52 92.857143
Yes 4 7.142857
No 53 82.812500
Yes 11 17.187500
No 43 87.755102
Yes 6 12.244898
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Knee7 == "Yes", na.rm = TRUE),
    n = sum(!is.na(Knee7))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
7 84 0.083 0.037 0.170 0e+00
7 75 0.093 0.042 0.189 0e+00
4 56 0.071 0.023 0.181 0e+00
11 64 0.172 0.093 0.291 3e-07
6 49 0.122 0.051 0.255 3e-07

Feet

df |> 
    group_by(Year_Study) |>
    count(Feet12) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Feet12 n Percentage
No 75 89.285714
Yes 9 10.714286
No 61 81.333333
Yes 14 18.666667
No 51 91.071429
Yes 5 8.928571
No 56 87.500000
Yes 8 12.500000
No 43 87.755102
Yes 6 12.244898
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Feet12 == "Yes", na.rm = TRUE),
    n = sum(!is.na(Feet12))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
9 84 0.107 0.053 0.198 0e+00
14 75 0.187 0.109 0.297 1e-07
5 56 0.089 0.033 0.204 0e+00
8 64 0.125 0.059 0.237 0e+00
6 49 0.122 0.051 0.255 3e-07
df |> 
  group_by(Year_Study) |>  
  count(Feet_Work) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Feet_Work n Percentage
No 79 94.047619
Yes 5 5.952381
No 69 92.000000
Yes 6 8.000000
No 52 92.857143
Yes 4 7.142857
No 59 92.187500
Yes 5 7.812500
No 48 97.959184
Yes 1 2.040816
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Feet_Work == "Yes", na.rm = TRUE),
    n = sum(!is.na(Feet_Work
    ))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
5 84 0.060 0.022 0.140 0
6 75 0.080 0.033 0.172 0
4 56 0.071 0.023 0.181 0
5 64 0.078 0.029 0.180 0
1 49 0.020 0.001 0.122 0
df |> 
  group_by(Year_Study) |>  
  count(Feet7) |>
    mutate(Percentage = n/sum(n)*100) |>
    kable()
Year_Study Feet7 n Percentage
No 80 95.238095
Yes 4 4.761905
No 66 88.000000
Yes 9 12.000000
No 52 92.857143
Yes 4 7.142857
No 61 95.312500
Yes 3 4.687500
No 46 93.877551
Yes 3 6.122449
library(dplyr)
library(broom)
library(tidyr)
library(knitr)

df %>%
  group_by(Year_Study) %>%
  summarise(
    freq = sum(Feet7 == "Yes", na.rm = TRUE),
    n = sum(!is.na(Feet7
    ))
  ) %>%
  rowwise() %>%
  mutate(
    prop_test = list(tidy(prop.test(freq, n)))
  ) %>%
  unnest(prop_test) %>%
  ungroup() %>%
  select(Year_Study, freq, n, estimate, conf.low, conf.high, p.value) %>%
  mutate(
    estimate = round(estimate, 3),
    conf.low = round(conf.low, 3),
    conf.high = round(conf.high, 3),
    p.value = signif(p.value, 3)
  ) %>%
  kable(col.names = c("Year", "Yes", "Total", "Proportion", "95% CI (Low)", "95% CI (High)", "p-value"))
Year Yes Total Proportion 95% CI (Low) 95% CI (High) p-value
4 84 0.048 0.015 0.124 0
9 75 0.120 0.060 0.220 0
4 56 0.071 0.023 0.181 0
3 64 0.047 0.012 0.140 0
3 49 0.061 0.016 0.179 0

May 17

# Packages loading.
library(tidyverse)
library(readxl)
library(knitr)
library(broom)
# Data loading.
df <- read_excel("Data/Cleaned Data.xlsx")

# Rename some variables
df <- df |>
    rename(
        NMQ = `Likert NMQ`,
        Activity = `Activity Level`,
        PHQ = `PHQ LEVEL`,
    )  |> 
# Convert some variables to factors
    mutate(
        Activity = factor(Activity, levels = c("Low", "Moderate", "High"), ordered = TRUE),
        PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),
        ) 

Point Biserial Correlation

PHQ x Pain 12

df <- df |>
  mutate(AnyPain12 = if_else(AnyPain12 == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$AnyPain12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1092786 1.984963 0.0479864 326 0.0009974 0.2150268 Pearson’s product-moment correlation two.sided

PHQ x Pain 7

df <- df |>
  mutate(AnyPain7 = if_else(AnyPain7 == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$AnyPain7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.2305915 4.278747 2.47e-05 326 0.1254308 0.3306282 Pearson’s product-moment correlation two.sided

PHQ x Neck 12

df <- df |>
  mutate(Neck12 = if_else(Neck12 == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$Neck12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0934113 1.693992 0.091222 326 -0.0150337 0.1996842 Pearson’s product-moment correlation two.sided

PHQ x Neck 7

df <- df |>
  mutate(Neck7 = if_else(Neck7 == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$Neck7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1452823 2.65127 0.0084106 326 0.0375807 0.2496475 Pearson’s product-moment correlation two.sided

PHQ x Shoulder12YN

df <- df |>
  mutate(Shoulder12YN = if_else(Shoulder12YN == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$Shoulder12YN) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1487235 2.715472 0.0069708 326 0.0410924 0.2529426 Pearson’s product-moment correlation two.sided

PHQ x Shoulder 7

df <- df |>
  mutate(Shoulder7 = if_else(Shoulder7 == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$Shoulder7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.156872 2.867906 0.0044012 326 0.0494186 0.2607355 Pearson’s product-moment correlation two.sided

PHQ x Elbow 12

df <- df |>
  mutate(Elbow12YN = if_else(Elbow12YN == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$Elbow12YN) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
-0.034241 -0.6186004 0.5366116 326 -0.1420074 0.0743275 Pearson’s product-moment correlation two.sided

PHQ x Elbow 7

df <- df |>
  mutate(Elbow7 = if_else(Elbow7 == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$Elbow7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
-0.0048376 -0.0873457 0.9304504 326 -0.1130712 0.1035096 Pearson’s product-moment correlation two.sided

PHQ x Wrist 12

df <- df |>
  mutate(Wrist12YN = if_else(Wrist12YN == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$Wrist12YN) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1490804 2.722135 0.0068349 326 0.0414567 0.2532842 Pearson’s product-moment correlation two.sided

PHQ x Wrist 7

df <- df |>
  mutate(Wrist7 = if_else(Wrist7 == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$Wrist7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0719237 1.301987 0.1938399 326 -0.0366547 0.1788237 Pearson’s product-moment correlation two.sided

PHQ x Upper back 12

df <- df |>
  mutate(UBack12 = if_else(UBack12 == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$UBack12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1737441 3.185479 0.0015848 326 0.0667062 0.2768284 Pearson’s product-moment correlation two.sided

PHQ x Upper back 7

df <- df |>
  mutate(UBack7 = if_else(UBack7 == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$UBack7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.226398 4.19669 3.5e-05 326 0.1210735 0.3266815 Pearson’s product-moment correlation two.sided

PHQ x Lower back 12

df <- df |>
  mutate(LBack12 = if_else(LBack12 == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$LBack12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0570436 1.031629 0.3030107 326 -0.0515679 0.1643214 Pearson’s product-moment correlation two.sided

PHQ x Lower back 7

df <- df |>
  mutate(LBack7 = if_else(LBack7 == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$LBack7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1884399 3.464438 0.0006024 326 0.0818166 0.2907986 Pearson’s product-moment correlation two.sided

PHQ x Hip 12

df <- df |>
  mutate(Hip12 = if_else(Hip12 == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$Hip12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0964284 1.749211 0.0811955 326 -0.0119897 0.2026056 Pearson’s product-moment correlation two.sided

PHQ x Hip 7

df <- df |>
  mutate(Hip7 = if_else(Hip7 == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$Hip7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.051048 0.9228981 0.3567428 326 -0.0575632 0.1584649 Pearson’s product-moment correlation two.sided

PHQ x Knee 12

df <- df |>
  mutate(Knee12 = if_else(Knee12 == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$Knee12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1043175 1.893835 0.059132 326 -0.0040208 0.2102355 Pearson’s product-moment correlation two.sided

PHQ x Knee 7

df <- df |>
  mutate(Knee7 = if_else(Knee7 == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$Knee7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1083428 1.967763 0.0499427 326 5.04e-05 0.2141234 Pearson’s product-moment correlation two.sided

PHQ x Feet 12

df <- df |>
  mutate(Feet12 = if_else(Feet12 == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$Feet12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1347774 2.455877 0.0145755 326 0.0268768 0.2395736 Pearson’s product-moment correlation two.sided

PHQ x Feet 7

df <- df |>
  mutate(Feet7 = if_else(Feet7 == "Yes", 1, 0),
         PHQ = factor(PHQ, levels = c("Minimal", "Mild", "Moderate", "Moderately Severe", "Severe"), ordered = TRUE),)
cor.test(as.numeric(df$PHQ), df$Feet7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0994333 1.804256 0.072114 326 -0.0089561 0.2055132 Pearson’s product-moment correlation two.sided

J x pain 12

cor.test(df$JENKINS, df$AnyPain12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.116205 2.112446 0.0354083 326 0.0080129 0.2217079 Pearson’s product-moment correlation two.sided

J x pain 7

cor.test(df$JENKINS, df$AnyPain7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.2505106 4.672061 4.4e-06 326 0.1461835 0.3493268 Pearson’s product-moment correlation two.sided

JENKINS x Neck 12

cor.test(df$JENKINS, df$Neck12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1573098 2.876111 0.0042911 326 0.0498664 0.2611538 Pearson’s product-moment correlation two.sided

J x Neck 7

cor.test(df$JENKINS, df$Neck7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1361103 2.48062 0.0136196 326 0.0282335 0.240853 Pearson’s product-moment correlation two.sided

J x shoulder 12

cor.test(df$JENKINS, df$Shoulder12YN) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0702015 1.270657 0.2047568 326 -0.0383832 0.1771477 Pearson’s product-moment correlation two.sided

J x shoulder 7

cor.test(df$JENKINS, df$Shoulder7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1279646 2.329613 0.0204369 326 0.0199481 0.2330283 Pearson’s product-moment correlation two.sided

J x elbow 12

cor.test(df$JENKINS, df$Elbow12YN) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
-0.0184714 -0.3335672 0.7389206 326 -0.1265113 0.0900015 Pearson’s product-moment correlation two.sided

J x elbow 7

cor.test(df$JENKINS, df$Elbow7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0142822 0.2578987 0.7966478 326 -0.0941563 0.1223858 Pearson’s product-moment correlation two.sided

J x wrist 12

cor.test(df$JENKINS, df$Wrist12YN) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.2098681 3.875577 0.0001286 326 0.1039374 0.3110907 Pearson’s product-moment correlation two.sided

J x wrist 7

cor.test(df$JENKINS, df$Wrist7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1283174 2.336144 0.0200894 326 0.0203067 0.2333675 Pearson’s product-moment correlation two.sided

J x upper back 12

cor.test(df$JENKINS, df$UBack12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1975774 3.639089 0.000318 326 0.0912366 0.2994629 Pearson’s product-moment correlation two.sided

J x upper back 7

cor.test(df$JENKINS, df$UBack7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.223723 4.144475 4.35e-05 326 0.1182961 0.3241622 Pearson’s product-moment correlation two.sided

J x lower back 12

cor.test(df$JENKINS, df$LBack12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1230141 2.238075 0.025891 326 0.0149199 0.2282661 Pearson’s product-moment correlation two.sided

J x lower back 7

cor.test(df$JENKINS, df$LBack7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.2006564 3.69816 0.0002548 326 0.0944151 0.3023787 Pearson’s product-moment correlation two.sided

J x hip 12

cor.test(df$JENKINS, df$Hip12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
-0.016753 -0.3025264 0.7624437 326 -0.1248195 0.0917062 Pearson’s product-moment correlation two.sided

J x hip 7

cor.test(df$JENKINS, df$Hip7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0291963 0.5273783 0.5982896 326 -0.0793475 0.1370559 Pearson’s product-moment correlation two.sided

J x knee 12

cor.test(df$JENKINS, df$Knee12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0634861 1.148588 0.2515679 326 -0.045117 0.1706061 Pearson’s product-moment correlation two.sided

J x knee 7

cor.test(df$JENKINS, df$Knee7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1170829 2.128627 0.0340346 326 0.0089029 0.222554 Pearson’s product-moment correlation two.sided

J x feet 12

cor.test(df$JENKINS, df$Feet12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0914235 1.657636 0.0983529 326 -0.0170381 0.1977585 Pearson’s product-moment correlation two.sided

J x feet 7

cor.test(df$JENKINS, df$Feet7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0696636 1.260872 0.2082566 326 -0.038923 0.176624 Pearson’s product-moment correlation two.sided

Hrs Work x pain 12

cor.test(df$`Work_Hr/Wk`, df$AnyPain12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1179667 2.14492 0.0326979 326 0.0097989 0.2234056 Pearson’s product-moment correlation two.sided

Hrs Work x pain 7

cor.test(df$`Work_Hr/Wk`, df$AnyPain7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1890701 3.476451 0.0005769 326 0.0824656 0.2913966 Pearson’s product-moment correlation two.sided

Hrs Work x neck 12

cor.test(df$`Work_Hr/Wk`, df$Neck12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0493688 0.8924646 0.3728022 326 -0.0592409 0.1568233 Pearson’s product-moment correlation two.sided

Hrs Work x neck 7

cor.test(df$`Work_Hr/Wk`, df$Neck7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0869657 1.576178 0.1159545 326 -0.02153 0.1934369 Pearson’s product-moment correlation two.sided

Hrs Work x shoulder 12

cor.test(df$`Work_Hr/Wk`, df$Shoulder12YN) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0781522 1.415404 0.1579046 326 -0.030398 0.1848804 Pearson’s product-moment correlation two.sided

Hrs Work x shoulder 7

cor.test(df$`Work_Hr/Wk`, df$Shoulder7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1195139 2.173457 0.0304654 326 0.0113681 0.224896 Pearson’s product-moment correlation two.sided

Hrs Work x elbow 12

cor.test(df$`Work_Hr/Wk`, df$Elbow12YN) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
-0.0355154 -0.6416519 0.5215501 326 -0.1432573 0.0730585 Pearson’s product-moment correlation two.sided

Hrs Work x elbow 7

cor.test(df$`Work_Hr/Wk`, df$Elbow7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
-0.085617 -1.551552 0.1217396 326 -0.1921286 0.0228881 Pearson’s product-moment correlation two.sided

Hrs Work x wrist 12

cor.test(df$`Work_Hr/Wk`, df$Wrist12YN) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1189039 2.162205 0.0313295 326 0.0107494 0.2243085 Pearson’s product-moment correlation two.sided

Hrs Work x wrist 7

cor.test(df$`Work_Hr/Wk`, df$Wrist7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0921657 1.671208 0.0956402 326 -0.0162898 0.1984776 Pearson’s product-moment correlation two.sided

Hrs Work x u back 12

cor.test(df$`Work_Hr/Wk`, df$UBack12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1936366 3.563647 0.0004204 326 0.0871716 0.2957282 Pearson’s product-moment correlation two.sided

Hrs Work x u back 7

cor.test(df$`Work_Hr/Wk`, df$UBack7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1276444 2.323687 0.0207568 326 0.0196227 0.2327204 Pearson’s product-moment correlation two.sided

Hrs Work x l back 12

cor.test(df$`Work_Hr/Wk`, df$LBack12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.1880534 3.457071 0.0006185 326 0.0814186 0.2904317 Pearson’s product-moment correlation two.sided

Hrs Work x l back 7

cor.test(df$`Work_Hr/Wk`, df$LBack7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.151691 2.770918 0.0059106 326 0.0441229 0.2557822 Pearson’s product-moment correlation two.sided

Hrs Work x hip 12

cor.test(df$`Work_Hr/Wk`, df$Hip12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
-0.0492342 -0.8900262 0.3741081 326 -0.1566917 0.0593753 Pearson’s product-moment correlation two.sided

Hrs Work x hip 7

cor.test(df$`Work_Hr/Wk`, df$Hip7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
-0.013315 -0.2404303 0.8101478 326 -0.1214328 0.095115 Pearson’s product-moment correlation two.sided

Hrs Work x knee 12

cor.test(df$`Work_Hr/Wk`, df$Knee12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0927289 1.681509 0.0936217 326 -0.0157219 0.1990233 Pearson’s product-moment correlation two.sided

Hrs Work x knee 7

cor.test(df$`Work_Hr/Wk`, df$Knee7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0513973 0.9292307 0.353457 326 -0.057214 0.1588063 Pearson’s product-moment correlation two.sided

Hrs Work x feet 12

cor.test(df$`Work_Hr/Wk`, df$Feet12) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0990725 1.797644 0.0731587 326 -0.0093204 0.2051642 Pearson’s product-moment correlation two.sided

Hrs Work x feet 7

cor.test(df$`Work_Hr/Wk`, df$Feet7) |>
  tidy() |>
  kable()
estimate statistic p.value parameter conf.low conf.high method alternative
0.0693183 1.254592 0.2105257 326 -0.0392694 0.1762878 Pearson’s product-moment correlation two.sided