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!
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!
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.
Kiitos vinkistä, alan tutustumaan tuohon tarkemmin!
={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.
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.