Mediaanit excelissä

Minulla on todella suuri molekyylibiologiaan liittyvä data josta haluaisin saada laskeutuksi mediaanit.

A-sarakkeessa on geenien nimet, esim geeni 1, geeni 1, geeni 1, geeni 2, geeni 2, geeni 2...

B-sarakkeessa ekspressiotasot eli siis lukuarvoja

C-sarakeessa p-arvot

Haluaisin jokaiselle geenille yhden arvon (mediaanin) joka olisi laskettu p-arvon mukaan. Joitakin geenejä on listassa parillinen määrä eli tällöin mediaanin tulisi olla keskimmäisten lukujen keskiarvo (sekä p-arvosta että vastaavista ekspressiotasoista)

Aloin tekemään tätä manuaalisesti, mutta aikaa menee tuhottomasti kun geenejä 6000. Olisiko joku funtio joka tekisi tämän automaattisesti? Kaikki vinkit ovat tervetulleita!
574
Äänestä

Muut lukivat myös

Vastaukset 5

Vanhimmat

Äkkiä väittäisin, että paras ratkaisu olisi kirjoittaa VisualBasic-makro. Rungoksi voi nauhoittaa kierros makroa manuaalitemppuineen, joiden lisäksi tarvitsee editoida makroon kontrollirakenteet.

Tämä saattaa tosin viedä jonkin verran aikaa, etenkään jos ohjelmoinnista ei ole aiempaa kokemusta, mutta VisualBasic-taidoista ei liene haittaa myöhemminkään.

Äänestä
  • Kiitos vinkistä, alan tutustumaan tuohon tarkemmin!

    Äänestä

={MEDIAN(IF(A1:A30000="geeninnimi";C1:C30000;""""))}

Kannattanee laittaa luettelo geenien nimistä esim D1:D6000, jolloin kaavan
={MEDIAN(IF($A$1:$A$30000=$D1;$C$1:$C$30000;""""))}
voi helposti monistaa rinnalle.

Tuossa oletin että eri geenejä on 6000 ja havaintoja 30000. Säätele sopivaksi.

Äänestä
  • Kiitos! Hankalaa tämä tuntuu minulle olevan. Kirjoitetaanko ensimmäiseen kaavan "geeninnimi" kohdalle jokaisen geenin nimi?

    Jos teen D-sarakkeeseen luettelon geenien nimistä, tarvisen vain toiseksi kirjoittamaasi kaavaa? Jos siinä tarvitsee vain säätää solunumerot oikeiksi en ymmärrä mitä teen väärin kun se ei minulla toimi.

    Äänestä

  • aamusarastus kirjoitti:

    Kiitos! Hankalaa tämä tuntuu minulle olevan. Kirjoitetaanko ensimmäiseen kaavan "geeninnimi" kohdalle jokaisen geenin nimi?

    Jos teen D-sarakkeeseen luettelon geenien nimistä, tarvisen vain toiseksi kirjoittamaasi kaavaa? Jos siinä tarvitsee vain säätää solunumerot oikeiksi en ymmärrä mitä teen väärin kun se ei minulla toimi.

    >Kirjoitetaanko ensimmäiseen kaavan "geeninnimi" kohdalle jokaisen geenin nimi?

    Kyllä, teksti lainausmerkkien sisään siinä muodossa kuin nimi on A-sarakkeessa. Tämä on helpoin tapa mutta joudut kirjoittamaan jokaisen geenin nimen käsin.

    Alemmassa kaavassa $D1 viittaa siis D1:een.
    Kun kopioit tätä solua allekkain, seuraavassa lukee $D2 j.n.e, eli se hakee geenin nimen D2:sta.

    Jollei toimi, niin onhan sinulla excel eikä mikään muu taulukkolaskentaohjelma. Ja onhan sinulla varmasti aaltosulut kaavan ympärillä. Ne kaavaan muistaakseni kun lopetat kaavan editoinnin painamalla shift-enter.

    Säädä se kaava ensin kohdalleen vakka E1-soluun ja vasta kun toimii, kopioi se E2:E6000 soluihin.

    Äänestä

Kommentoi aloitusta


aamusarastus kirjoitti:

Minulla on todella suuri molekyylibiologiaan liittyvä data josta haluaisin saada laskeutuksi mediaanit.

A-sarakkeessa on geenien nimet, esim geeni 1, geeni 1, geeni 1, geeni 2, geeni 2, geeni 2...

B-sarakkeessa ekspressiotasot eli siis lukuarvoja

C-sarakeessa p-arvot

Haluaisin jokaiselle geenille yhden arvon (mediaanin) joka olisi laskettu p-arvon mukaan. Joitakin geenejä on listassa parillinen määrä eli tällöin mediaanin tulisi olla keskimmäisten lukujen keskiarvo (sekä p-arvosta että vastaavista ekspressiotasoista)

Aloin tekemään tätä manuaalisesti, mutta aikaa menee tuhottomasti kun geenejä 6000. Olisiko joku funtio joka tekisi tämän automaattisesti? Kaikki vinkit ovat tervetulleita!

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu