Мне удалось выполнить chisq-test с использованием цикла в R, но он очень медленный для больших данных, и мне интересно, не могли бы вы помочь мне сделать это быстрее с чем-то вроде dplyr?Я пытался с dplyr, но я все время получал сообщение об ошибке, которое я не уверен в причине.
Вот краткий пример моих данных:
df
1 2 3 4 5
row_1 2260.810 2136.360 3213.750 3574.750 2383.520
row_2 328.050 496.608 184.862 383.408 151.450
row_3 974.544 812.508 1422.010 1307.510 1442.970
row_4 2526.900 826.197 1486.000 2846.630 1486.000
row_5 2300.130 2499.390 1698.760 1690.640 2338.640
row_6 280.980 752.516 277.292 146.398 317.990
row_7 874.159 794.792 1033.330 2383.420 748.868
row_8 437.560 379.278 263.665 674.671 557.739
row_9 1357.350 1641.520 1397.130 1443.840 1092.010
row_10 1749.280 1752.250 3377.870 1534.470 2026.970
cs
1 1 1 2 1 2 2 1 2 3
ЧтоЯ хочу сделать, это запустить chisq-test между каждой строкой df и cs.Затем, предоставив мне статистику и p.values, а также имена строк.
вот мой код цикла:
value = matrix(nrow=ncol(df),ncol=3)
for (i in 1:ncol(df)) {
tst <- chisq.test(df[i,], cs)
value[i,1] <- tst$p.value
value[i,2] <- tst$statistic
value[i,3] <- rownames(df)[i]}
Спасибо за вашу помощь.