Мне нравится находить корреляцию между строками?

Мне нравится находить корреляцию для строк и сравнивать корреляцию между строками. Но я могу найти корреляцию между столбцами.

                A    B    C   D 
1 11132217      2   3    2    2                    
1 111441829     2   2    0    2               
1 12082926      0   2    3    2              
1 150547747     0   0    3    2             
1 151239051     0   2    2    2             
1 161594100     0   3    3    2              

Я использовал эту команду, но она не сработала.

sapply(1:nrow(data), function(i) cor(data[i,]))

Пожалуйста, направьте меня?


person star    schedule 16.12.2015    source источник


Ответы (1)


Возможно, я не понимаю вашего вопроса, но cor может ввести фрейм данных и будет делать то, что вы хотите, по столбцам. Так почему бы просто не перенести ваши данные, а затем сделать это:

cor(t(data)

            11132217  111441829   12082926  150547747  151239051  161594100
11132217   1.0000000  0.3333333  0.1324532 -0.5555556  0.3333333  0.4714045
111441829  0.3333333  1.0000000 -0.6622662 -0.7777778 -0.3333333 -0.4714045
12082926   0.1324532 -0.6622662  1.0000000  0.7505683  0.9271726  0.9365858
150547747 -0.5555556 -0.7777778  0.7505683  1.0000000  0.5555556  0.4714045
151239051  0.3333333 -0.3333333  0.9271726  0.5555556  1.0000000  0.9428090
161594100  0.4714045 -0.4714045  0.9365858  0.4714045  0.9428090  1.0000000
person road_to_quantdom    schedule 16.12.2015
comment
Спасибо за ваш ответ. Я выполнил ваш код, но получил NA? - person star; 16.12.2015
comment
@star Я использовал ваши данные выше. Концепция должна работать. Может быть, данные хранятся забавным образом. Может с факторами? Возможно, фреймворк данных не того типа - person road_to_quantdom; 16.12.2015
comment
@star попробуй опубликовать что ddput(head(data)) таким образом мы получим именно то, что ты используешь - person road_to_quantdom; 17.12.2015