У меня есть матрица с 41 строкой и 6 столбцами. Вот как выглядит первая часть.R: Сравнить все столбцы попарно в матрице
X13 X15 X17 X19 X21 X23
[1,] "7" "6" "5" "8" "1" "8"
[2,] "7" "6" "5" "8" "14" "3"
[3,] "7" "6" "1" "3" "12" "3"
[4,] "7" "6" "1" "5" "6" "14"
[5,] "2" "6" "1" "5" "16" "3"
[6,] "2" "3" "5" "5" "2" "3"
[7,] "7" "5" "5" "17" "7" "3"
[8,] "7" "2" "5" "2" "2" "14"
[9,] "2" "2" "10" "10" "2" "3"
[10,] "2" "2" "10" "5" "2" "6"
Моя цель состоит в том, чтобы сравнить все столбцы друг с другом, и посмотреть, сколько из чисел равны в 2 колонки. Я попытался сделать это следующим образом:
s <- sum(matrix[,1]==matrix[,2])
Но так как мне нужно сравнить все возможные пары, это не эффективно. Было бы здорово поставить это в цикл, но я понятия не имею, как это сделать.
И я хотел бы получить свой результат в виде матрицы подобия 6x6. Что-то вроде этого:
X13 X15 X17 X19 X21 X23
X13 0 0 3 2 2 3
X15 0 0 9 11 4 6
X17 3 9 0 5 1 3
X19 2 11 5 0 9 10
X21 2 4 1 9 0 9
X23 3 6 3 10 9 0
Как вы видите, я хотел бы поставить нули в матрице, когда столбец сравнивается с iteslf.
Поскольку я являюсь новичком пользователя R, эта задача semms действительно сложна для меня. Мне нужно использовать это сравнение для 50 матриц, поэтому я был бы рад, если бы вы могли мне помочь. Буду признателен за любые советы/предложения. Мой английский тоже не очень хорош, но я надеюсь, что смогу объяснить свою проблему достаточно хорошо. :)
Возможно, это может помочь вам http://stackoverflow.com/questions/6804498/sum-pairwise-rows-with-r – GK89
Это похоже на персональные данные, поэтому вам может потребоваться преобразовать их в числовые. –
Благодарим вас за предложение. Я не нашел этого вопроса. Я посмотрю на это. – Sielu