packages
library("tidyverse")
library("ggthemes")
library("forcats")
library("ggplot2")
library("BlandAltmanLeh")
cargo df desde la web y creo el objeto
df <- read.csv("https://docs.google.com/spreadsheets/d/e/2PACX-1vQgBuSiktQ2-rhwyRVO3s0HK3b0p-Wq2v3owxNGcg-To57mHrEfmH6AhuChavjOCMvhjYvIHuNL1liP/pub?gid=474470130&single=true&output=csv")
grafica
df %>%
ggplot(aes(x = fct_reorder(Material, `Medida`), y = `Medida`, color=Material)) +
geom_boxplot()+
theme_minimal()+
coord_flip()

cargo plantilla
df2 <- read.csv("https://docs.google.com/spreadsheets/d/e/2PACX-1vQgBuSiktQ2-rhwyRVO3s0HK3b0p-Wq2v3owxNGcg-To57mHrEfmH6AhuChavjOCMvhjYvIHuNL1liP/pub?gid=1845685926&single=true&output=csv")
Nuevas variables de diferencias entre mediciones
Lt_diferencias <- df2 %>%
mutate(Control=LT.control.- LT.control.) %>%
mutate(LAE = LT.control. - LT.LAE.) %>%
mutate(Chemfil = LT.control. - LT.Chemfil.) %>%
mutate(Ketac = LT.control. - LT.Ketac.Molar.) %>%
mutate(Resina= LT.control. - LT.Resina.)
boxplot de las diferencias

bland altman para control vs lae
bland.altman.plot(df2$LT.control.,df2$LT.LAE. ,
graph.sys = "ggplot2")

bland altman para control vs chemfil
bland.altman.plot(df2$LT.control.,df2$LT.Chemfil. ,
graph.sys = "ggplot2")

Chemfil
bland.altman.stats(df2$LT.control.,df2$LT.Chemfil.)$CI.lines
lower.limit.ci.lower lower.limit.ci.upper mean.diff.ci.lower mean.diff.ci.upper
-0.7741487 0.1665095 0.3053784 0.8484677
upper.limit.ci.lower upper.limit.ci.upper
0.9873367 1.9279949
ketac
bland.altman.stats(df2$LT.control.,df2$LT.Ketac.Molar.)$CI.lines
lower.limit.ci.lower lower.limit.ci.upper mean.diff.ci.lower mean.diff.ci.upper
-0.67014167 0.01065676 0.11116273 0.50422189
upper.limit.ci.lower upper.limit.ci.upper
0.60472786 1.28552628
resina
bland.altman.stats(df2$LT.control.,df2$LT.Resina.)$CI.lines
lower.limit.ci.lower lower.limit.ci.upper mean.diff.ci.lower mean.diff.ci.upper
-1.41553123 -0.23183628 -0.05708791 0.62631868
upper.limit.ci.lower upper.limit.ci.upper
0.80106705 1.98476199
LT lae
bland.altman.stats(df2$LT.control.,df2$LT.LAE.)$CI.lines
lower.limit.ci.lower lower.limit.ci.upper mean.diff.ci.lower mean.diff.ci.upper
0 0 0 0
upper.limit.ci.lower upper.limit.ci.upper
0 0
Visualizo en otra grafica para LAE vs control
df2 %>%
ggplot(mapping = aes(x = LT.control., y = LT.LAE.)) +
geom_point(color = "black", size = 1) +
labs(title = "Diagrama de dispersión", x = "método A", y = "método B") +
geom_smooth(method = "lm", se = TRUE, color = "red", lwd = 0.5) +
geom_abline(intercept = 0, slope = 1, lwd = 0.7, col = "blue") +
theme(axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank()) +
theme_bw() + theme(plot.title = element_text(hjust = 0.5))

Para control vs chemfil
df2 %>%
ggplot(mapping = aes(x = LT.control., y = LT.Chemfil.)) +
geom_point(color = "black", size = 1) +
labs(title = "Diagrama de dispersión", x = "método A", y = "método B") +
geom_smooth(method = "lm", se = TRUE, color = "red", lwd = 0.5) +
geom_abline(intercept = 0, slope = 1, lwd = 0.7, col = "blue") +
theme(axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank()) +
theme_bw() + theme(plot.title = element_text(hjust = 0.5))

Para control vs Ketac-molar
df2 %>%
ggplot(mapping = aes(x = LT.control., y = LT.Ketac.Molar.)) +
geom_point(color = "black", size = 1) +
labs(title = "Diagrama de dispersión", x = "método A", y = "método B") +
geom_smooth(method = "lm", se = TRUE, color = "red", lwd = 0.5) +
geom_abline(intercept = 0, slope = 1, lwd = 0.7, col = "blue") +
theme(axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank()) +
theme_bw() + theme(plot.title = element_text(hjust = 0.5))

Para control vs resina compuest
df2 %>%
ggplot(mapping = aes(x = LT.control., y = LT.Resina.)) +
geom_point(color = "black", size = 1) +
labs(title = "Diagrama de dispersión", x = "método A", y = "método B") +
geom_smooth(method = "lm", se = TRUE, color = "red", lwd = 0.5) +
geom_abline(intercept = 0, slope = 1, lwd = 0.7, col = "blue") +
theme(axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank()) +
theme_bw() + theme(plot.title = element_text(hjust = 0.5))

reformateo y abro el nuevo df
bland antmamm

LS0tCnRpdGxlOiAiVGVzaXMgbWVkaWNpb25lcyBMQUUgeSBtYXRlcmlhbGVzXzIwMTkiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KI3BhY2thZ2VzCmBgYHtyfQpsaWJyYXJ5KCJ0aWR5dmVyc2UiKQpsaWJyYXJ5KCJnZ3RoZW1lcyIpCmxpYnJhcnkoImZvcmNhdHMiKQpsaWJyYXJ5KCJnZ3Bsb3QyIikKbGlicmFyeSgiQmxhbmRBbHRtYW5MZWgiKQpgYGAKI2NhcmdvIGRmIGRlc2RlIGxhIHdlYiB5IGNyZW8gZWwgb2JqZXRvCmBgYHtyfQpkZiA8LSByZWFkLmNzdigiaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vc3ByZWFkc2hlZXRzL2QvZS8yUEFDWC0xdlFnQnVTaWt0UTItcmh3eVJWTzNzMEhLM2IwcC1XcTJ2M293eE5HY2ctVG81N21IckVmbUg2QWh1Q2hhdmpPQ012aGpZdklIdU5MMWxpUC9wdWI/Z2lkPTQ3NDQ3MDEzMCZzaW5nbGU9dHJ1ZSZvdXRwdXQ9Y3N2IikKYGBgCiNncmFmaWNhIApgYGB7cn0KZGYgJT4lIAogZ2dwbG90KGFlcyh4ID0gZmN0X3Jlb3JkZXIoTWF0ZXJpYWwsIGBNZWRpZGFgKSwgeSA9IGBNZWRpZGFgLCBjb2xvcj1NYXRlcmlhbCkpICsKICBnZW9tX2JveHBsb3QoKSsKICB0aGVtZV9taW5pbWFsKCkrCiAgY29vcmRfZmxpcCgpCmBgYAojY2FyZ28gcGxhbnRpbGxhCmBgYHtyfQpkZjIgPC0gcmVhZC5jc3YoImh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3NwcmVhZHNoZWV0cy9kL2UvMlBBQ1gtMXZRZ0J1U2lrdFEyLXJod3lSVk8zczBISzNiMHAtV3EydjNvd3hOR2NnLVRvNTdtSHJFZm1INkFodUNoYXZqT0NNdmhqWXZJSHVOTDFsaVAvcHViP2dpZD0xODQ1Njg1OTI2JnNpbmdsZT10cnVlJm91dHB1dD1jc3YiKQpgYGAKI051ZXZhcyB2YXJpYWJsZXMgZGUgZGlmZXJlbmNpYXMgZW50cmUgbWVkaWNpb25lcwpgYGB7cn0KTHRfZGlmZXJlbmNpYXMgPC0gZGYyICU+JSAKICBtdXRhdGUoQ29udHJvbD1MVC5jb250cm9sLi0gTFQuY29udHJvbC4pICU+JSAKICBtdXRhdGUoTEFFID0gTFQuY29udHJvbC4gLSBMVC5MQUUuKSAlPiUgCiAgbXV0YXRlKENoZW1maWwgPSBMVC5jb250cm9sLiAtIExULkNoZW1maWwuKSAlPiUgCiAgbXV0YXRlKEtldGFjID0gTFQuY29udHJvbC4gLSBMVC5LZXRhYy5Nb2xhci4pICU+JSAKICBtdXRhdGUoUmVzaW5hPSBMVC5jb250cm9sLiAtIExULlJlc2luYS4pCmBgYAojYm94cGxvdCBkZSBsYXMgZGlmZXJlbmNpYXMKYGBge3J9Ckx0X2RpZmVyZW5jaWFzICU+JSAKICBnYXRoZXIoa2V5ID0gInZhcmlhYmxlIiwgdmFsdWUgPSAidmFsb3IiLCBMQUU6UmVzaW5hKSAlPiUgCiAgZ2dwbG90KGFlcyh4ID0gZmN0X3Jlb3JkZXIodmFyaWFibGUsIGB2YWxvcmApLCB5ID0gYHZhbG9yYCkpICsKIGdlb21fYm94cGxvdCgpKwogIHRoZW1lX21pbmltYWwoKQpgYGAKCiNibGFuZCBhbHRtYW4gcGFyYSBjb250cm9sIHZzIGxhZQpgYGB7cn0KYmxhbmQuYWx0bWFuLnBsb3QoZGYyJExULmNvbnRyb2wuLGRmMiRMVC5MQUUuICwgCiAgICAgICAgICAgICAgICAgIGdyYXBoLnN5cyA9ICJnZ3Bsb3QyIikKYGBgCiNibGFuZCBhbHRtYW4gcGFyYSBjb250cm9sIHZzIGNoZW1maWwKYGBge3J9CmJsYW5kLmFsdG1hbi5wbG90KGRmMiRMVC5jb250cm9sLixkZjIkTFQuQ2hlbWZpbC4gLCAKICAgICAgICAgICAgICAgICAgZ3JhcGguc3lzID0gImdncGxvdDIiKQpgYGAKI0NoZW1maWwgCmBgYHtyfQpibGFuZC5hbHRtYW4uc3RhdHMoZGYyJExULmNvbnRyb2wuLGRmMiRMVC5DaGVtZmlsLikkQ0kubGluZXMKYGBgCiNrZXRhYwpgYGB7cn0KYmxhbmQuYWx0bWFuLnN0YXRzKGRmMiRMVC5jb250cm9sLixkZjIkTFQuS2V0YWMuTW9sYXIuKSRDSS5saW5lcwpgYGAKI3Jlc2luYQpgYGB7cn0KYmxhbmQuYWx0bWFuLnN0YXRzKGRmMiRMVC5jb250cm9sLixkZjIkTFQuUmVzaW5hLikkQ0kubGluZXMKYGBgCiNMVCBsYWUKYGBge3J9CmJsYW5kLmFsdG1hbi5zdGF0cyhkZjIkTFQuY29udHJvbC4sZGYyJExULkxBRS4pJENJLmxpbmVzCmBgYAoKCiNWaXN1YWxpem8gZW4gb3RyYSBncmFmaWNhIHBhcmEgTEFFIHZzIGNvbnRyb2wgCmBgYHtyfQpkZjIgJT4lIApnZ3Bsb3QobWFwcGluZyA9IGFlcyh4ID0gTFQuY29udHJvbC4sIHkgPSBMVC5MQUUuKSkgKwogIGdlb21fcG9pbnQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMSkgKwogIGxhYnModGl0bGUgPSAiRGlhZ3JhbWEgZGUgZGlzcGVyc2nDs24iLCB4ID0gIm3DqXRvZG8gQSIsIHkgPSAibcOpdG9kbyBCIikgKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIsIHNlID0gVFJVRSwgY29sb3IgPSAicmVkIiwgbHdkID0gMC41KSArCiAgZ2VvbV9hYmxpbmUoaW50ZXJjZXB0ID0gMCwgc2xvcGUgPSAxLCBsd2QgPSAwLjcsIGNvbCA9ICJibHVlIikgKwogIHRoZW1lKGF4aXMubGluZSA9IGVsZW1lbnRfbGluZShjb2xvdXIgPSAiYmxhY2siKSwgCiAgICAgICAgcGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfYmxhbmsoKSwgCiAgICAgICAgcGFuZWwuZ3JpZC5taW5vciA9IGVsZW1lbnRfYmxhbmsoKSwgCiAgICAgICAgcGFuZWwuYm9yZGVyID0gZWxlbWVudF9ibGFuaygpLCAKICAgICAgICBwYW5lbC5iYWNrZ3JvdW5kID0gZWxlbWVudF9ibGFuaygpKSArCiAgdGhlbWVfYncoKSArIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKSAKYGBgCiNQYXJhIGNvbnRyb2wgdnMgY2hlbWZpbApgYGB7cn0KZGYyICU+JSAKZ2dwbG90KG1hcHBpbmcgPSBhZXMoeCA9IExULmNvbnRyb2wuLCB5ID0gTFQuQ2hlbWZpbC4pKSArCiAgZ2VvbV9wb2ludChjb2xvciA9ICJibGFjayIsIHNpemUgPSAxKSArCiAgbGFicyh0aXRsZSA9ICJEaWFncmFtYSBkZSBkaXNwZXJzacOzbiIsIHggPSAibcOpdG9kbyBBIiwgeSA9ICJtw6l0b2RvIEIiKSArCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIiwgc2UgPSBUUlVFLCBjb2xvciA9ICJyZWQiLCBsd2QgPSAwLjUpICsKICBnZW9tX2FibGluZShpbnRlcmNlcHQgPSAwLCBzbG9wZSA9IDEsIGx3ZCA9IDAuNywgY29sID0gImJsdWUiKSArCiAgdGhlbWUoYXhpcy5saW5lID0gZWxlbWVudF9saW5lKGNvbG91ciA9ICJibGFjayIpLCAKICAgICAgICBwYW5lbC5ncmlkLm1ham9yID0gZWxlbWVudF9ibGFuaygpLCAKICAgICAgICBwYW5lbC5ncmlkLm1pbm9yID0gZWxlbWVudF9ibGFuaygpLCAKICAgICAgICBwYW5lbC5ib3JkZXIgPSBlbGVtZW50X2JsYW5rKCksIAogICAgICAgIHBhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X2JsYW5rKCkpICsKICB0aGVtZV9idygpICsgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpIApgYGAKI1BhcmEgY29udHJvbCB2cyBLZXRhYy1tb2xhcgpgYGB7cn0KZGYyICU+JSAKZ2dwbG90KG1hcHBpbmcgPSBhZXMoeCA9IExULmNvbnRyb2wuLCB5ID0gTFQuS2V0YWMuTW9sYXIuKSkgKwogIGdlb21fcG9pbnQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMSkgKwogIGxhYnModGl0bGUgPSAiRGlhZ3JhbWEgZGUgZGlzcGVyc2nDs24iLCB4ID0gIm3DqXRvZG8gQSIsIHkgPSAibcOpdG9kbyBCIikgKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIsIHNlID0gVFJVRSwgY29sb3IgPSAicmVkIiwgbHdkID0gMC41KSArCiAgZ2VvbV9hYmxpbmUoaW50ZXJjZXB0ID0gMCwgc2xvcGUgPSAxLCBsd2QgPSAwLjcsIGNvbCA9ICJibHVlIikgKwogIHRoZW1lKGF4aXMubGluZSA9IGVsZW1lbnRfbGluZShjb2xvdXIgPSAiYmxhY2siKSwgCiAgICAgICAgcGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfYmxhbmsoKSwgCiAgICAgICAgcGFuZWwuZ3JpZC5taW5vciA9IGVsZW1lbnRfYmxhbmsoKSwgCiAgICAgICAgcGFuZWwuYm9yZGVyID0gZWxlbWVudF9ibGFuaygpLCAKICAgICAgICBwYW5lbC5iYWNrZ3JvdW5kID0gZWxlbWVudF9ibGFuaygpKSArCiAgdGhlbWVfYncoKSArIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKSAKYGBgCiNQYXJhIGNvbnRyb2wgdnMgcmVzaW5hIGNvbXB1ZXN0CmBgYHtyfQpkZjIgJT4lIApnZ3Bsb3QobWFwcGluZyA9IGFlcyh4ID0gTFQuY29udHJvbC4sIHkgPSBMVC5SZXNpbmEuKSkgKwogIGdlb21fcG9pbnQoY29sb3IgPSAiYmxhY2siLCBzaXplID0gMSkgKwogIGxhYnModGl0bGUgPSAiRGlhZ3JhbWEgZGUgZGlzcGVyc2nDs24iLCB4ID0gIm3DqXRvZG8gQSIsIHkgPSAibcOpdG9kbyBCIikgKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIsIHNlID0gVFJVRSwgY29sb3IgPSAicmVkIiwgbHdkID0gMC41KSArCiAgZ2VvbV9hYmxpbmUoaW50ZXJjZXB0ID0gMCwgc2xvcGUgPSAxLCBsd2QgPSAwLjcsIGNvbCA9ICJibHVlIikgKwogIHRoZW1lKGF4aXMubGluZSA9IGVsZW1lbnRfbGluZShjb2xvdXIgPSAiYmxhY2siKSwgCiAgICAgICAgcGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfYmxhbmsoKSwgCiAgICAgICAgcGFuZWwuZ3JpZC5taW5vciA9IGVsZW1lbnRfYmxhbmsoKSwgCiAgICAgICAgcGFuZWwuYm9yZGVyID0gZWxlbWVudF9ibGFuaygpLCAKICAgICAgICBwYW5lbC5iYWNrZ3JvdW5kID0gZWxlbWVudF9ibGFuaygpKSArCiAgdGhlbWVfYncoKSArIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKSAKYGBgCiNyZWZvcm1hdGVvIHkgYWJybyBlbCBudWV2byBkZgpgYGB7cn0KZGYzIDwtIHJlYWQuY3N2KCJodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9zcHJlYWRzaGVldHMvZC9lLzJQQUNYLTF2UWdCdVNpa3RRMi1yaHd5UlZPM3MwSEszYjBwLVdxMnYzb3d4TkdjZy1UbzU3bUhyRWZtSDZBaHVDaGF2ak9DTXZoall2SUh1TkwxbGlQL3B1Yj9naWQ9Nzg0NzgzODc4JnNpbmdsZT10cnVlJm91dHB1dD1jc3YiKQpgYGAKI2JsYW5kIGFudG1hbW0KYGBge3J9CmRmMyAlPiUgCmdncGxvdChhZXMoeCA9IExUX3Byb21lZGlvLCB5ID0gTFRfZGlmLCBzaGFwZT1NYXRlcmlhbCwgY29sb3I9TWF0ZXJpYWwpKSArCiAgZ2VvbV9wb2ludChhbHBoYSA9IDAuNSkgKwogIGdlb21faGxpbmUoeWludGVyY2VwdCA9IG1lYW4oZGYzJExUX2RpZiksIGNvbG91ciA9ICJibHVlIiwgc2l6ZSA9IDAuNSkgKwogIGdlb21faGxpbmUoeWludGVyY2VwdCA9IG1lYW4oZGYzJExUX2RpZikgLSAoMS45NiAqIHNkKGRmMyRMVF9kaWYpKSwgY29sb3VyID0gInJlZCIsIHNpemUgPSAwLjUpICsKICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSBtZWFuKGRmMyRMVF9kaWYpICsgKDEuOTYgKiBzZChkZjMkTFRfZGlmKSksIGNvbG91ciA9ICJyZWQiLCBzaXplID0gMC41KSArCiAgeWxhYigiRGlmZXJlbmNpYSBlbnRyZSBtZWRpZGljb25lcyIpICsKICB4bGFiKCJQcm9tZWRpbyBkZSBtZWRpY2lvbmVzIikrCiAgdGhlbWVfbWluaW1hbCgpCmBgYAoKCg==