Milyen a jó kérdés?

1
0

Hülye kérdésre hülye válasz.

Ezen az oldalon sincs ez másképp :) Egy jó kérdés tömör, lényegretörő, a nem releváns részletektől megtisztított, elég konkrét ahhoz, hogy megválaszolható legyen, reprodukálható hátteret vagy problémát tartalmaz és jó esetben köze is van az R-hez.

Minimal reproducible example

Hogy ne rabold a válaszolók Rád fordított szabadidejét:

  • A kérdés hátteréhez minimálisan szükséges adatokat egyszerű módon tedd elérhetővé, ne csatolj 5 megás CSV fájlt, hogy a válaszadó bogarássza ki abból a releváns részeket,
  • Célszerű az R objektumot a dput függvényen átfuttatni és annak az eredményét megosztani, hogy a válaszolok gyorsan tudják azt “copy-paste”-elni. Példa:

    > dput(head(iris)) 
    structure(list(Sepal.Length = c(5.1, 4.9, 4.7, 4.6, 5, 5.4), 
        Sepal.Width = c(3.5, 3, 3.2, 3.1, 3.6, 3.9), Petal.Length = c(1.4, 
        1.4, 1.3, 1.5, 1.4, 1.7), Petal.Width = c(0.2, 0.2, 0.2, 
        0.2, 0.2, 0.4), Species = structure(c(1L, 1L, 1L, 1L, 1L, 
        1L), .Label = c("setosa", "versicolor", "virginica"), class = "factor")), .Names = c("Sepal.Length",  "Sepal.Width", "Petal.Length", "Petal.Width", "Species"), row.names = c(NA,  6L), class = "data.frame")
    
  • Olykor még egyszerűbb egy minimális példát összeállítani a set.seed és véletlen számok, továbbá pl. a letters használatával a szöveges részekre, pl.:

    > set.seed(7)
    > data.frame(a = runif(5), b = sample(letters, 5))
               a b
    1 0.98890930 u
    2 0.39774545 i
    3 0.11569778 x
    4 0.06974868 d
    5 0.24374939 k
    
  • Csak a releváns kódrészletet közöld! Ez általában nem haladja meg a pár sort. Ha valami nem működik az egyébként szépen átgondolt és briliáns 600 soros R függvényedben, akkor is szűkítsd le a problémát néhány sorra, és a kérdés kizárólag arra vonatkozzon.

  • Egy jó kérdés megfogalmazása bizony időbe telhet, de ha választ szeretnél kapni kérdésedre, úgy tiszteld a válaszadók idejét, és ne rabold fölöslegesen azt a nem releváns részletekkel!

Környezet

Sokszor hasznos, ha technikai probléma esetén egyből megírod a használt R verzióját, hogy milyen operációs rendszert használsz, továbbá a releváns csomagokat is verziószámmal együtt. Egy probléma olykor az egyedi körülményekre vezethető vissza, mint pl. az ékezetes és szóközzel teli path Windowson, vagy OS-specifikus R csomagok telepítése. A környezet leírásának a legegyszerűbb módja a sessionInfo függvény argumentum nélküli meghívása:

    > sessionInfo()
    R version 3.1.0 (2014-04-10)
    Platform: x86_64-unknown-linux-gnu (64-bit)

    locale:
     [1] LC_CTYPE=hu_HU.utf8       LC_NUMERIC=C             
     [3] LC_TIME=en_US.UTF-8       LC_COLLATE=en_US.UTF-8   
     [5] LC_MONETARY=en_US.UTF-8   LC_MESSAGES=hu_HU.utf8   
     [7] LC_PAPER=hu_HU.utf8       LC_NAME=C                
     [9] LC_ADDRESS=C              LC_TELEPHONE=C           
    [11] LC_MEASUREMENT=hu_HU.utf8 LC_IDENTIFICATION=C      

    attached base packages:
    [1] stats     utils     datasets  grDevices graphics  methods   base     

    other attached packages:
    [1] ascii_2.1           pander_0.3.9        bigmemory_4.4.6    
    [4] BH_1.54.0-2         bigmemory.sri_0.1.2

    loaded via a namespace (and not attached):
    [1] digest_0.6.4 tools_3.1.0 

A szöveg formázása, helyesírás

Továbbá sokat segít, ha tagolod a kérdés szövegét:

  • a fontos részeket kiemeled — a kevéssé fontos részeket pedig ugye le se írod :)
  • az R kódot inline és a nagyobb kódrészleteket is megfelelően formázod a szövegdoboz feletti eszköztár segítségével
  • érdemes megismerkedni a markdown jelölőnyelv használatával az egyéb formázási trükkökkel kapcsolatban is
  • egy helyesírási hibáktól hemzsegő, központozás nélküli szöveget nehéz olvasni, így különösen ügyelj a szöveg szerkesztésére is.
  • You must to post comments
0
0

A StackOverflow kapcsolódó posztja, hasznos linkekkel:

http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example

  • daroczig
    Köszi, Lőrinc! Jelen kérdés és válasz eredeti ihletője valóban a linkelt thread volt -- nem titkoltan, a kérdés utolsó sora pont ide mutat :) Ettől függetlenül szerintem csak jó, ha itt külön is szerepel a link, nagyon jó referencia-anyag.
  • You must to post comments
2 találat mutatása
Új válasz írása

Please first to submit.