Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

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

Offen
#90 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
42/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
r
Bereich
data

Rechercherichtung

Beginnen Sie damit, den gemeldeten Fehler cor(DelayedArray(x), DelayedArray(y)) zu reproduzieren, und vergleichen Sie ihn mit den bereitgestellten delayedCov-Beispielen. Verwenden Sie das im Issue beschriebene Verhalten der Pearson-Korrelation als Ziel und überprüfen Sie, dass äquivalente Matrix- und DelayedArray-Eingaben übereinstimmende Ergebnisse ohne den numerischen Typfehler liefern.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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)

Vorherrschende Sprache
R
Sterne
29
Forks
12
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus Bioconductor/DelayedArray

Alle Issues in Bioconductor/DelayedArray

Ähnliche Issues

Weitere Issues zu R

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.