Мне нужно применить тест Фридмана для 2680 столбцов данных в наборах из 8 столбцов - PullRequest
0 голосов
/ 29 марта 2019

У меня 2680 столбцов данных в наборах по 8 столбцов, для которых мне нужно применить тест Фридмана к каждому набору, поэтому мне нужно применить тест 335 раз.Можно ли было бы перебрать код в наборах по 8?

Пример одного из наборов:

    X2012    X2013 X2014    X2015    X2016 X2017 X2018
[1,] 0.000000 0.000000  0.00 0.000000 0.000000  0.00 0.000
[2,] 0.000000 3.000000  0.00 0.000000 0.000000  0.00 3.000
[3,] 3.000000 3.000000  0.00 3.000000 3.000000  3.00 3.000
[4,] 2.500000 2.333333  3.00 3.000000 3.000000  2.75 3.000
[5,] 2.600000 3.000000  3.00 2.428571 3.000000  3.00 3.375
[6,] 2.891892 2.967742  3.04 2.833333 2.777778  3.00 2.840

с некоторым кодом

require(PMCMRplus)
rank <- read.csv("C:/Projects/rank.csv",header=TRUE)
rank<-as.matrix(rank)
friedman.test(rank)

что дает в результате

Friedman rank sum test

data:  rank
Friedman chi-squared = 33.228, df = 6, p-value = 0.00000948

Ответы [ 2 ]

1 голос
/ 29 марта 2019

Я бы выбрал подмножество столбцов из вашей матрицы рангов. Что-то вроде:

...
rank <- as.matrix(rank)
for(chunk in seq(from=1, to=ncol(rank), by=8)) {
   j <- seq(from=chunk, length.out=8);
   friedman.test(rank[,j])
}
0 голосов
/ 29 марта 2019

Я потратил много времени, пытаясь выяснить это, и даже использовал цикл For Loop, увеличивая индексы на 8, но я не доверял результатам. В конце концов я просто использовал грубую силу ...

require(PMCMRplus)
require(PMCMR)
rank <- read.csv("C:/Projects/rank.csv",header=TRUE)
rank<-as.matrix(rank) 
friedman.test(rank[,    2   :   8   ])
friedman.test(rank[,    10  :   16  ])
friedman.test(rank[,    18  :   24  ])
friedman.test(rank[,    26  :   32  ])

и т.д. , , .

Было довольно легко использовать Excel для увеличения индексов и вставить все 335 тестов в r.

...