Для цифровых данных у вас есть решение. Вы сказали, что это категорические данные. Затем жизнь становится немного сложнее ...
Ну, во-первых: сумма связи между двумя категориальными переменными не измеряется с помощью ранговой корреляции Спирмена, но, например, с критерием Хи-квадрат. На самом деле это логика. Ранжирование означает, что в ваших данных есть определенный порядок. Теперь скажите мне, что больше, желтое или красное? Я знаю, иногда R выполняет корреляцию рангов копья на категориальных данных. Если я закодирую желтый 1 и красный 2, R будет считать красным больше желтого.
Итак, забудьте о Spearman для категориальных данных. Я продемонстрирую chisq-тест и как выбрать столбцы с помощью combn(). Но вы бы извлечь выгоду из немного больше времени с книгой Агрести в: http://www.amazon.com/Categorical-Analysis-Wiley-Probability-Statistics/dp/0471360937
set.seed(1234)
X <- rep(c("A","B"),20)
Y <- sample(c("C","D"),40,replace=T)
table(X,Y)
chisq.test(table(X,Y),correct=F)
# I don't use Yates continuity correction
#Let's make a matrix with tons of columns
Data <- as.data.frame(
matrix(
sample(letters[1:3],2000,replace=T),
ncol=25
)
)
# You want to select which columns to use
columns <- c(3,7,11,24)
vars <- names(Data)[columns]
# say you need to know which ones are associated with each other.
out <- apply(combn(columns,2),2,function(x){
chisq.test(table(Data[,x[1]],Data[,x[2]]),correct=F)$p.value
})
out <- cbind(as.data.frame(t(combn(vars,2))),out)
Тогда вы должны получить:
> out
V1 V2 out
1 V3 V7 0.8116733
2 V3 V11 0.1096903
3 V3 V24 0.1653670
4 V7 V11 0.3629871
5 V7 V24 0.4947797
6 V11 V24 0.7259321
Где V1 и V2 показывают, между которыми переменными он идет, и «из» дает значение p для ассоциации. Здесь все переменные независимы. Что бы вы ожидали, поскольку я создал данные наугад.
, если вы действительно хотите только, чтобы сделать корреляцию на столбцах 1, 3 и 10, вы всегда можете сделать 'Сог (х [С (1, 3, 10)])' – Greg
Извините, это числовые, а не нечисловые данные. Я оставлю это на всякий случай. – Greg
рад, что вы его оставили, Грег. Вы уже помогли кому-то - это уже помогло мне использовать sapply в другом творческом ключе :) –