2016-01-07 3 views
5

C'è qualcosa come la funzione tabella di R in Julia? Ho letto su xtab, ma non so come usarlo.Funzione tabella R in Julia (per DataFrames)

Supponiamo di avere R's data.framerdata quale col6 è del tipo Factor.

R codice di esempio:

rdata <- read.csv("mycsv.csv") #1 table(rdata$col6) #2

Per leggere i dati e fare fattori Julia lo faccio come questo:

using DataFrames jldata = readtable("mycsv.csv", makefactors=true) #1 :col6 will be now pooled.

..., ma come costruire La tabella di R come in julia (come ottenere # 2)?

+0

Vedere questa discussione in corso a: [StatsBase] (https://github.com/JuliaStats/StatsBase.jl/issues/32) – SalchiPapa

risposta

4

È possibile utilizzare la funzione countmap da StatsBase.jl per contare le voci di una singola variabile. A questo punto mancano la tabulazione incrociata generale e i test statistici per le tabelle di contingenza. Come sottolinea Ismael, questo è stato discusso nel tracker dei problemi per StatsBase.jl.

4

sono giunto alla conclusione che un effetto simile può essere ottenuto utilizzando by:

Let jldata costituito da :gender colonna.

julia> by(jldata, :gender, nrow) 3x2 DataFrames.DataFrame | Row | gender | x1 | |-----|----------|-------| | 1 | NA | 175 | | 2 | "female" | 40254 | | 3 | "male" | 58574 |

Naturalmente non è un table ma almeno ottengo lo stesso tipo di dati come l'origine dati. Sorprendentemente, by sembra essere più veloce di countmap.

+0

che è davvero pulito. Preferisco questo su 'countmap' per i dataframes. – niczky12

+0

Potrebbe valere la pena aggiungere che questo metodo può essere utilizzato per eseguire più tabelle incrociate, che 'countmap' non può fare al momento. – niczky12