NA при поиске корреляции в кадре данных

Я пытаюсь рассчитать корреляцию для моего фрейма данных, то есть df3, который выглядит так

    group          a         b  
1  01_01-102_PRT  0.5857299 1.0915944  
2    01_1014_EMH -0.8875033 0.9982261  
3  02_02-012_ABT  1.5402289 1.0095046  
4 02_02-028B_TMA -0.2635421 0.9533909  
5    02_097A_KMG  0.1529145 1.0452099  
6     02_116_DMC  0.7375643 0.9927591  

Мой код:

require(plyr)
func <- function(df3)
{
    return(data.frame(COR = cor(df3$a, df3$b)))
}

too <- ddply(df3, .(group), func)  

Мой вывод

     group          COR  
1    01_01-102_PRT  NA
2      01_1014_EMH  NA
3    02_02-012_ABT  NA
4   02_02-028B_TMA  NA
5      02_097A_KMG  NA
....

Я также пробовал другие способы, указанные здесь https://stats.stackexchange.com/questions/4040/r-compute-correlation-by-group, но я всегда получаю NA.

Помогите пожалуйста
Спасибо
Джейсон


person Jason    schedule 19.12.2013    source источник
comment
Как предполагает Свен, вы можете не агрегировать свои данные так, как вы думаете. Попробуйте написать уравнения (математику, а не код) и посмотрите, что у вас получится.   -  person Carl Witthoft    schedule 20.12.2013


Ответы (1)


Получается, что каждая группа состоит ровно из одной строки и, следовательно, из одного значения a и одного значения b. Вы не можете рассчитать корреляцию, если данные не различаются. Следовательно, вам нужно как минимум два разных значения для a и b.

person Sven Hohenstein    schedule 19.12.2013