Packages

library(tidyverse)
library(viridis)
# install.packages("ggsignif")
library(ggsignif)

dataset

df <- read_csv("https://docs.google.com/spreadsheets/d/e/2PACX-1vQi_9CH1iGd36xWS5ECw4czoj780kJaTWOY5CgwW3fXCYkU7I9cKYTUpNY2I-k5QTF4tC18tlSLgpjP/pub?gid=663675586&single=true&output=csv")
Missing column names filled in: 'X30' [30], 'X31' [31]Duplicated column names deduplicated: 'gadi kops beigsanas' => 'gadi kops beigsanas_1' [22]Parsed with column specification:
cols(
  .default = col_integer(),
  `Ud es:` = col_character(),
  `gadi kops beigsanas` = col_number(),
  `gadi kops beigsanas_1` = col_number(),
  X30 = col_character(),
  X31 = col_character(),
  Min = col_character(),
  Q1 = col_character(),
  Average = col_number(),
  SD = col_number(),
  `P<0.001` = col_character()
)
See spec(...) for full column specifications.

Data cleaning

df <- janitor::clean_names(df)
df <- janitor::remove_empty(df, c("rows", "cols"))

Graphs

Recommendations

df %>% 
  filter(!is.na(recommendations)) %>% 
  ggplot(aes(x = ud_es, y = recommendations, fill = ud_es)) +
  geom_boxplot() + 
  labs(title = "Recommendations about oral hygiene given by dental hygienist and dentists", 
       y = "Value", 
       x = "Group", 
       caption="*** p value < 0.01") +
  theme_classic() + 
  scale_fill_manual(values=c("#ffcc03", "#00377c")) + 
  geom_jitter(alpha = 0.1) + 
  geom_signif(comparisons = list(c("Dental hygienist", "Dentist")),
               map_signif_level = TRUE, textsize=6) + 
  coord_cartesian(ylim = c(0, 21)) + 
  theme(legend.position="none") 

NA

Attitude

df %>% 
  filter(!is.na(recommendations)) %>% 
  ggplot(aes(x = ud_es, y = attitude, fill = ud_es)) +
  geom_boxplot() + 
  labs(title = "Attitude about oral hygiene given by dental hygienist and dentists", 
       y = "Value", 
       x = "Group", 
       caption="NS. p > 0.05") +
  theme_classic() + 
  scale_fill_manual(values=c("#ffcc03", "#00377c")) + 
  geom_jitter(alpha = 0.1) + 
  geom_signif(comparisons = list(c("Dental hygienist", "Dentist")),
               map_signif_level = TRUE, textsize = 4) + 
  coord_cartesian(ylim = c(0, 28)) + 
  theme(legend.position="none")

Dati

dati <- read_csv("https://docs.google.com/spreadsheets/d/e/2PACX-1vQi_9CH1iGd36xWS5ECw4czoj780kJaTWOY5CgwW3fXCYkU7I9cKYTUpNY2I-k5QTF4tC18tlSLgpjP/pub?gid=411400485&single=true&output=csv")
Parsed with column specification:
cols(
  .default = col_character(),
  N = col_integer()
)
See spec(...) for full column specifications.

Weighted data

weighted <- read_csv("https://docs.google.com/spreadsheets/d/e/2PACX-1vQi_9CH1iGd36xWS5ECw4czoj780kJaTWOY5CgwW3fXCYkU7I9cKYTUpNY2I-k5QTF4tC18tlSLgpjP/pub?gid=663675586&single=true&output=csv")
Missing column names filled in: 'X30' [30], 'X31' [31]Duplicated column names deduplicated: 'gadi kops beigsanas' => 'gadi kops beigsanas_1' [22]Parsed with column specification:
cols(
  .default = col_integer(),
  `Ud es:` = col_character(),
  `gadi kops beigsanas` = col_number(),
  `gadi kops beigsanas_1` = col_number(),
  X30 = col_character(),
  X31 = col_character(),
  Min = col_character(),
  Q1 = col_character(),
  Average = col_number(),
  SD = col_number(),
  `P<0.001` = col_character()
)
See spec(...) for full column specifications.

Changes through time

Proportion tests

38% of dental hygienists and 68% of dentists do not recommend any toothbrushing technique.

prop.test(dy, dyt)

    2-sample test for equality of proportions with continuity
    correction

data:  dy out of dyt
X-squared = 16.881, df = 1, p-value = 3.98e-05
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.441945 -0.158055
sample estimates:
prop 1 prop 2 
  0.38   0.68 

3 dentists (1.11%) and no dental hygienists would recommend toothpaste without fluoride.

prop.test(dy, dyt)
Chi-squared approximation may be incorrect

    2-sample test for equality of proportions with continuity
    correction

data:  dy out of dyt
X-squared = 0.010962, df = 1, p-value = 0.9166
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.04163458  0.01943458
sample estimates:
prop 1 prop 2 
0.0000 0.0111 

55% of dental hygienists and 30% of dentists would recommend toothpaste with fluoride in a concentration of 1000 ppm or more, the rest of specialists (45% of dental hygienists and 70% of dentists) would not give any recommendations about required fluoride concentration in a toothpaste.

prop.test(dy, dyt)

    2-sample test for equality of proportions with continuity
    correction

data:  dy out of dyt
X-squared = 11.785, df = 1, p-value = 0.000597
alternative hypothesis: two.sided
95 percent confidence interval:
 0.1074305 0.3925695
sample estimates:
prop 1 prop 2 
  0.55   0.30 

Majority of dental team specialists would recommend interdental cleaning (95% of dental hygienists and 88% of dentists).

prop.test(dy, dyt)

    2-sample test for equality of proportions with continuity
    correction

data:  dy out of dyt
X-squared = 2.3144, df = 1, p-value = 0.1282
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.01668946  0.15668946
sample estimates:
prop 1 prop 2 
  0.95   0.88 
LS0tDQp0aXRsZTogIjIwMTggRUFEUEgiDQpvdXRwdXQ6IA0KICBodG1sX25vdGVib29rOiANCiAgICB0b2M6IHllcw0KICAgIHRvY19mbG9hdDogdHJ1ZQ0KICAgIGZpZ19jYXB0aW9uOiB0cnVlDQotLS0NCg0KIyBQYWNrYWdlcw0KYGBge3IgcGFja2FnZXN9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkodmlyaWRpcykNCiMgaW5zdGFsbC5wYWNrYWdlcygiZ2dzaWduaWYiKQ0KbGlicmFyeShnZ3NpZ25pZikNCmBgYA0KDQojIGRhdGFzZXQNCmBgYHtyIGRhdGFzZXR9DQpkZiA8LSByZWFkX2NzdigiaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vc3ByZWFkc2hlZXRzL2QvZS8yUEFDWC0xdlFpXzlDSDFpR2QzNnhXUzVFQ3c0Y3pvajc4MGtKYVRXT1k1Q2d3VzNmWENZa1U3STljS1lUVXBOWTJJLWs1UVRGNHRDMTh0bFNMZ3BqUC9wdWI/Z2lkPTY2MzY3NTU4NiZzaW5nbGU9dHJ1ZSZvdXRwdXQ9Y3N2IikNCmBgYA0KDQojIERhdGEgY2xlYW5pbmcNCmBgYHtyfQ0KZGYgPC0gamFuaXRvcjo6Y2xlYW5fbmFtZXMoZGYpDQpkZiA8LSBqYW5pdG9yOjpyZW1vdmVfZW1wdHkoZGYsIGMoInJvd3MiLCAiY29scyIpKQ0KYGBgDQoNCiMgR3JhcGhzDQoNCiMjIFJlY29tbWVuZGF0aW9ucw0KDQpgYGB7cn0NCmRmICU+JSANCiAgZmlsdGVyKCFpcy5uYShyZWNvbW1lbmRhdGlvbnMpKSAlPiUgDQogIGdncGxvdChhZXMoeCA9IHVkX2VzLCB5ID0gcmVjb21tZW5kYXRpb25zLCBmaWxsID0gdWRfZXMpKSArDQogIGdlb21fYm94cGxvdCgpICsgDQogIGxhYnModGl0bGUgPSAiUmVjb21tZW5kYXRpb25zIGFib3V0IG9yYWwgaHlnaWVuZSBnaXZlbiBieSBkZW50YWwgaHlnaWVuaXN0IGFuZCBkZW50aXN0cyIsIA0KICAgICAgIHkgPSAiVmFsdWUiLCANCiAgICAgICB4ID0gIkdyb3VwIiwgDQogICAgICAgY2FwdGlvbj0iKioqIHAgdmFsdWUgPCAwLjAxIikgKw0KICB0aGVtZV9jbGFzc2ljKCkgKyANCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzPWMoIiNmZmNjMDMiLCAiIzAwMzc3YyIpKSArIA0KICBnZW9tX2ppdHRlcihhbHBoYSA9IDAuMSkgKyANCiAgZ2VvbV9zaWduaWYoY29tcGFyaXNvbnMgPSBsaXN0KGMoIkRlbnRhbCBoeWdpZW5pc3QiLCAiRGVudGlzdCIpKSwNCiAgICAgICAgICAgICAgIG1hcF9zaWduaWZfbGV2ZWwgPSBUUlVFLCB0ZXh0c2l6ZT02KSArIA0KICBjb29yZF9jYXJ0ZXNpYW4oeWxpbSA9IGMoMCwgMjEpKSArIA0KICB0aGVtZShsZWdlbmQucG9zaXRpb249Im5vbmUiKSANCiAgDQpgYGANCg0KDQoNCiMjIEF0dGl0dWRlIA0KDQpgYGB7cn0NCmRmICU+JSANCiAgZmlsdGVyKCFpcy5uYShyZWNvbW1lbmRhdGlvbnMpKSAlPiUgDQogIGdncGxvdChhZXMoeCA9IHVkX2VzLCB5ID0gYXR0aXR1ZGUsIGZpbGwgPSB1ZF9lcykpICsNCiAgZ2VvbV9ib3hwbG90KCkgKyANCiAgbGFicyh0aXRsZSA9ICJBdHRpdHVkZSBhYm91dCBvcmFsIGh5Z2llbmUgZ2l2ZW4gYnkgZGVudGFsIGh5Z2llbmlzdCBhbmQgZGVudGlzdHMiLCANCiAgICAgICB5ID0gIlZhbHVlIiwgDQogICAgICAgeCA9ICJHcm91cCIsIA0KICAgICAgIGNhcHRpb249Ik5TLiBwID4gMC4wNSIpICsNCiAgdGhlbWVfY2xhc3NpYygpICsgDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcz1jKCIjZmZjYzAzIiwgIiMwMDM3N2MiKSkgKyANCiAgZ2VvbV9qaXR0ZXIoYWxwaGEgPSAwLjEpICsgDQogIGdlb21fc2lnbmlmKGNvbXBhcmlzb25zID0gbGlzdChjKCJEZW50YWwgaHlnaWVuaXN0IiwgIkRlbnRpc3QiKSksDQogICAgICAgICAgICAgICBtYXBfc2lnbmlmX2xldmVsID0gVFJVRSwgdGV4dHNpemUgPSA0KSArIA0KICBjb29yZF9jYXJ0ZXNpYW4oeWxpbSA9IGMoMCwgMjgpKSArIA0KICB0aGVtZShsZWdlbmQucG9zaXRpb249Im5vbmUiKQ0KYGBgDQoNCiMgRGF0aQ0KDQpgYGB7cn0NCmRhdGkgPC0gcmVhZF9jc3YoImh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3NwcmVhZHNoZWV0cy9kL2UvMlBBQ1gtMXZRaV85Q0gxaUdkMzZ4V1M1RUN3NGN6b2o3ODBrSmFUV09ZNUNnd1czZlhDWWtVN0k5Y0tZVFVwTlkySS1rNVFURjR0QzE4dGxTTGdwalAvcHViP2dpZD00MTE0MDA0ODUmc2luZ2xlPXRydWUmb3V0cHV0PWNzdiIpDQpgYGANCg0KDQojIFdlaWdodGVkIGRhdGENCmBgYHtyfQ0Kd2VpZ2h0ZWQgPC0gcmVhZF9jc3YoImh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3NwcmVhZHNoZWV0cy9kL2UvMlBBQ1gtMXZRaV85Q0gxaUdkMzZ4V1M1RUN3NGN6b2o3ODBrSmFUV09ZNUNnd1czZlhDWWtVN0k5Y0tZVFVwTlkySS1rNVFURjR0QzE4dGxTTGdwalAvcHViP2dpZD02NjM2NzU1ODYmc2luZ2xlPXRydWUmb3V0cHV0PWNzdiIpDQpgYGANCg0KQ2hhbmdlcyB0aHJvdWdoIHRpbWUNCmBgYHtyfQ0Kd2VpZ2h0ZWQgJT4lIA0KICBmaWx0ZXIoIWlzLm5hKGBVZCBlczpgKSkgJT4lIA0KICBnYXRoZXIoa2V5ID0gInZhcmlhYmxlIiwgdmFsdWUgPSAidmFsdWUiLCBSZWNvbW1lbmRhdGlvbnMsIEF0dGl0dWRlKSAlPiUNCiAgZ2dwbG90KGFlcyh4ID0gYEHDsW8gZGUgZWdyZXNvIGRlIHByZWdyYWRvOmAsIHkgPSB2YWx1ZSwgY29sb3IgPSBgVWQgZXM6YCkpICsgDQogIGdlb21faml0dGVyKGFscGhhID0gMC4yKSArIA0KICBnZW9tX3Ntb290aCgpICsgDQogIHRoZW1lX2NsYXNzaWMoKSArIA0KICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzPWMoIiNmZmNjMDMiLCAiIzAwMzc3YyIpKSArIA0KICBsYWJzKGNvbG9yID0gIlR5cGUiLCANCiAgICAgICB5ID0gIlZhbHVlIiwgeCA9ICJHcmFkdWF0aW9uIHllYXIiKSArIA0KICBmYWNldF9ncmlkKC5+dmFyaWFibGUpICsgDQogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9IGMoMC4xNSwgMC4xNSkpDQpgYGANCg0KDQojIFByb3BvcnRpb24gdGVzdHMNCjM4JSBvZiBkZW50YWwgaHlnaWVuaXN0cyBhbmQgNjglIG9mIGRlbnRpc3RzIGRvIG5vdCByZWNvbW1lbmQgYW55IHRvb3RoYnJ1c2hpbmcgdGVjaG5pcXVlLg0KYGBge3J9DQpkeSA8LSBjKDM4LCA2OCkNCmR5dCA8LSBjKDEwMCwgMTAwKQ0KcHJvcC50ZXN0KGR5LCBkeXQpDQpgYGANCg0KMyBkZW50aXN0cyAoMS4xMSUpIGFuZCBubyBkZW50YWwgaHlnaWVuaXN0cyB3b3VsZCByZWNvbW1lbmQgdG9vdGhwYXN0ZSB3aXRob3V0IGZsdW9yaWRlLg0KYGBge3J9DQpkeSA8LSBjKDAsIDEuMTEpDQpkeXQgPC0gYygxMDAsIDEwMCkNCnByb3AudGVzdChkeSwgZHl0KQ0KYGBgDQoNCjU1JSBvZiBkZW50YWwgaHlnaWVuaXN0cyBhbmQgMzAlIG9mIGRlbnRpc3RzIHdvdWxkIHJlY29tbWVuZCB0b290aHBhc3RlIHdpdGggZmx1b3JpZGUgaW4gYSBjb25jZW50cmF0aW9uIG9mIDEwMDAgcHBtIG9yIG1vcmUsIHRoZSByZXN0IG9mIHNwZWNpYWxpc3RzICg0NSUgb2YgZGVudGFsIGh5Z2llbmlzdHMgYW5kIDcwJSBvZiBkZW50aXN0cykgd291bGQgbm90IGdpdmUgYW55IHJlY29tbWVuZGF0aW9ucyBhYm91dCByZXF1aXJlZCBmbHVvcmlkZSBjb25jZW50cmF0aW9uIGluIGEgdG9vdGhwYXN0ZS4NCmBgYHtyfQ0KZHkgPC0gYyg1NSwgMzApDQpkeXQgPC0gYygxMDAsIDEwMCkNCnByb3AudGVzdChkeSwgZHl0KQ0KYGBgDQoNCk1ham9yaXR5IG9mIGRlbnRhbCB0ZWFtIHNwZWNpYWxpc3RzIHdvdWxkIHJlY29tbWVuZCBpbnRlcmRlbnRhbCBjbGVhbmluZyAoOTUlIG9mIGRlbnRhbCBoeWdpZW5pc3RzIGFuZCA4OCUgb2YgZGVudGlzdHMpLg0KYGBge3J9DQpkeSA8LSBjKDk1LCA4OCkNCmR5dCA8LSBjKDEwMCwgMTAwKQ0KcHJvcC50ZXN0KGR5LCBkeXQpDQpgYGANCg0K