Как повторить через параметры, чтобы проанализировать

Есть ли лучший способ повторить через ряд параметров данного набора данных? Очевидно, я пытаюсь получить стол коэффициентов корреляции: колонки - "CI, CVP, означают КАШУ, означают SAP", ряды - "ALAT, ASAT, GGT, Bili, LDH, FBG". Для каждой комбинации я хотел бы получить коэффициент корреляции и уровень значения (p =...). Ниже Вас см. "твердый путь". Но есть ли более изящный путь, возможно с пригодным для печатания столом?

attach(Liver)
cor.test(CI, ALAT, method = "spearman")
cor.test(CI, ASAT, method = "spearman")
cor.test(CI, GGT, method = "spearman")
cor.test(CI, Bili, method = "spearman")
cor.test(CI, LDH, method = "spearman")
cor.test(CI, FBG, method = "spearman")

cor.test(CVP, ALAT, method = "spearman")
cor.test(CVP, ASAT, method = "spearman")
cor.test(CVP, GGT, method = "spearman")
cor.test(CVP, Bili, method = "spearman")
cor.test(CVP, LDH, method = "spearman")
cor.test(CVP, FBG, method = "spearman")

cor.test(meanPAP, ALAT, method = "spearman")
cor.test(meanPAP, ASAT, method = "spearman")
cor.test(meanPAP, GGT, method = "spearman")
cor.test(meanPAP, Bili, method = "spearman")
cor.test(meanPAP, LDH, method = "spearman")
cor.test(meanPAP, FBG, method = "spearman")

cor.test(meanSAP, ALAT, method = "spearman")
cor.test(meanSAP, ASAT, method = "spearman")
cor.test(meanSAP, GGT, method = "spearman")
cor.test(meanSAP, Bili, method = "spearman")
cor.test(meanSAP, LDH, method = "spearman")
cor.test(meanSAP, FBG, method = "spearman")

detach("Liver")
2
добавлено отредактировано
Просмотры: 1
de

2 ответы

Уловка должна получить все возможные комбинации. Здесь, я создаю data.frame с 10 колонками и получаю все комбинации, используя combn функция. Тогда его довольно прямое, чтобы получить corrleation-и ценности p-.

set.seed(12)
x <- as.data.frame(matrix(rnorm(100), nrow=10))
combinations <- combn(ncol(x), 2)

out <- apply(combinations, 2, function(idx) {
    t <- cor.test(x[, idx[1]], x[, idx[2]], method = "spearman")
    c(names(x)[idx[1]], names(x)[idx[2]], t$estimate, t$p.value)
})
# more formatting if necessary
out <- as.data.frame(t(out))
names(out) <- c("col.idx1", "col.idx2", "cor", "pval")

Edit: An even more compact code by utilizing FUN argument within combn (as per Greg's suggestion)

set.seed(12)
x <- as.data.frame(matrix(rnorm(100), nrow=10))
out <- as.data.frame(t(combn(ncol(x), 2, function(idx) {
    t <- cor.test(x[, idx[1]], x[, idx[2]], method = "spearman")
    c(names(x)[idx[1]], names(x)[idx[2]], t$estimate, t$p.value)
})))
names(out) <- c("col.idx1", "col.idx2", "cor", "pval")
10
добавлено
Я не уверен, но я думаю, что вы, возможно, должны были бы использовать: t <-cor.test (x [idx[1]], x [idx[2]], метод =' spearman') чтобы получить ответы, оригинальный плакат ищет.
добавлено автор Mark Miller, источник
Я думаю, что ЗАБАВА аргументом в combn должен быть один из наиболее пропущенных аргументов;)
добавлено автор A5C1D2H2I1M1N2O1R2T1, источник
combn у функции есть ЗАБАВА аргумент, таким образом, вышеупомянутое могло, вероятно, быть упрощено, передав функцию, используемую в , применяют непосредственно, чтобы combn .
добавлено автор Greg Snow, источник
That' s, как я сделал бы это, но я действительно ценю работу других авторов, которые уже внесли проверенный код в известные пакеты (как Hmisc).
добавлено автор Roman Luštrik, источник

Есть функция rcor.test() в библиотеке ltm , который делает стол коэффициентов корреляции и p-ценностей. Например, у используемых данных ирис также, как и не есть ваше тело данных.

library(ltm)
rcor.test(iris[,1:4],method="spearman")


             Sepal.Length Sepal.Width Petal.Length Petal.Width
Sepal.Length  *****       -0.167       0.882        0.834     
Sepal.Width   0.041        *****      -0.310       -0.289     
Petal.Length <0.001       <0.001       *****        0.938     
Petal.Width  <0.001       <0.001      <0.001        *****     

upper diagonal part contains correlation coefficient estimates 
lower diagonal part contains corresponding p-values
9
добавлено
There' s также rcorr в "Hmisc", который даст вам отдельную матрицу для коэффициентов корреляции и p-ценностей.
добавлено автор A5C1D2H2I1M1N2O1R2T1, источник