2013-08-28 5 views
0

j'ai deux dataframes avec une seule rangée et souhaite trouver la corrélation en utilisant la fonction de cor() R.NA s en corrélation dans R

### données A

structure(list(`244901_at` = 5.9926850249, `244902_at` = 6.3553842023, 
`244903_at` = 8.8921318402, `244904_at` = 6.4579518676, `244905_at` = 4.7964593532, 
`244906_at` = 8.3237756365, `244907_at` = 4.3723366423, `244908_at` = 4.7352416175, 
`244909_at` = 4.5714368032, `244910_s_at` = 4.1291856864), .Names = c("244901_at", 
"244902_at", "244903_at", "244904_at", "244905_at", "244906_at", 
"244907_at", "244908_at", "244909_at", "244910_s_at"), class = "data.frame", row.names = c(NA, -1L)) 
données B
 structure(list(`244901_at` = 4.750238726, `244902_at` = 5.0413815841, 
`244903_at` = 4.9859823666, `244904_at` = 6.1587895393, `244905_at` = 4.8531009472, 
`244906_at` = 5.6846558629, `244907_at` = 4.584193219, `244908_at` = 4.5031021576, 
`244909_at` = 4.4333119965, `244910_s_at` = 4.1019972842), .Names = c("244901_at", 
"244902_at", "244903_at", "244904_at", "244905_at", "244906_at", 
"244907_at", "244908_at", "244909_at", "244910_s_at"), class = "data.frame", row.names  = c(NA, -1L)) 

lorsque je calcule la corrélation, il me donne NA.

 cor(data A, data B) 



          244901_at 244902_at 244903_at 244904_at 244905_at 244906_at 244907_at    2 44908_at 
      244901_at   NA  NA  NA  NA  NA  NA  NA  NA 
      244902_at   NA  NA  NA  NA  NA  NA  NA  NA 
      244903_at   NA  NA  NA  NA  NA  NA  NA  NA 
      244904_at   NA  NA  NA  NA  NA  NA  NA  NA 
      244905_at   NA  NA  NA  NA  NA  NA  NA  NA 
      244906_at   NA  NA  NA  NA  NA  NA  NA  NA 
      244907_at   NA  NA  NA  NA  NA  NA  NA  NA 
      244908_at   NA  NA  NA  NA  NA  NA  NA  NA 
      244909_at   NA  NA  NA  NA  NA  NA  NA  NA 
      244910_s_at  NA  NA  NA  NA  NA  NA  NA  NA 

         244909_at 
      244901_at   NA   
      244902_at   NA   
      244903_at   NA   
      244904_at   NA   
      244905_at   NA   
      244906_at   NA   
      244907_at   NA   
      244908_at   NA   
      244909_at   NA   
      244910_s_at  NA   
+1

Bienvenue sur SO. Veuillez lire http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example et utiliser 'dput' pour vos données d'exemple. – sgibb

Répondre

1

Si vos données sont dans le cadre de données fonctionnent alors cor() calculera corrélation entre les colonnes de votre cadre de deux données. Dans votre cas, vous obtenez tous NA parce qu'il n'y a qu'une seule ligne dans votre trame de données.

Vous devez transposer vos trames de données de telle sorte que cette ligne devienne une colonne, puis vous pouvez calculer le coefficient de corrélation. Pour transposer, vous pouvez utiliser la fonction t().

cor(t(df.A),t(df.B)) 
+0

@ Didzis Elferts: Désolé de ne pas avoir mentionné plus tôt, je voudrais calculer la corrélation entre les colonnes des deux données et c'est pourquoi j'ai transposé ce que j'avais à l'origine. – user1834063

+0

@ user1834063 Vous ne pouvez pas calculer la corrélation si vous n'avez qu'une seule observation! –