Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Is there a way to get `cor` to work?

Ouverte
#90 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
42/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
r
Domaine
data

Piste de recherche

Commencez par reproduire l’erreur signalée cor(DelayedArray(x), DelayedArray(y)) et comparez-la aux exemples delayedCov fournis. Prenez comme référence le comportement de la corrélation de Pearson décrit dans l’issue et vérifiez que des entrées équivalentes de type matrice et DelayedArray produisent des résultats concordants sans l’erreur de type numérique.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

When I try cor, I get errors like Error in cor(DelayedArray(x), DelayedArray(y)) : 'x' must be numeric. Am I missing something simple?

If it's not implemented, I have a little function for this and I could send a pull request.

#' Drop-in replacement for cov or cor; tolerates DelayedArray input. Pearson correlation only. 
#'
delayedCov = function(x, y = x, do_cor = F){
  mux = colMeans(x)
  muy = colMeans(y)
  zx = sweep(x, 2, mux, "-")
  zy = sweep(y, 2, muy, "-")
  covxy = t(zx) %*% zy
  covxy = covxy / nrow(x)
  if(do_cor){
    sx = sqrt(colMeans(zx^2))
    sy = sqrt(colMeans(zy^2))
    covxy = Matrix::Diagonal(x = 1/sx) %*% covxy %*% Matrix::Diagonal(x = 1/sy)
  }
  covxy
}
# tests
x = matrix(rnorm(1000), ncol = 10)
y = matrix(rnorm(1000), ncol = 10)
plot(delayedCov(x, y),  cov(x, y)); abline(a = 0, b = 1)
plot(delayedCov(x, y, do_cor = T),  cor(x, y)); abline(a = 0, b = 1)
plot(delayedCov(DelayedArray(x), DelayedArray(y), do_cor = T),  cor(x, y)); abline(a = 0, b = 1)

Langage dominant
R
Étoiles
29
Forks
12
Métriques de merge des PR
Aucune PR mergée en 30 j

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de Bioconductor/DelayedArray

Toutes les issues de Bioconductor/DelayedArray

Issues similaires

Plus d'issues R

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.