2016-01-03 1 views
3

Факторы - это тип вектора в R, для которого элементы являются категориальными значениями, которые также можно заказать. Значения сохраняются внутренне как целые числа с помеченными уровнями.Что такое решение Джулии для концепции фактора R?

# In R: 
> x = c("high" , "medium" , "low" , "high" , "medium") 

> xf = factor(x) 
> xf 
[1] high  medium low  high  medium 
Levels: high low medium 

> as.numeric(xf) 
[1] 1 3 2 1 3 

> xfo = factor(x , levels=c("low","medium","high") , ordered=TRUE) 
> xfo 
[1] high  medium low  high  medium 
Levels: low < medium < high 

> as.numeric(xfo) 
[1] 3 2 1 3 2 

Я проверил Julia documentation и Джон Майлс Уайт Comparing Julia and R’s Vocabularies (может быть obsolote) - кажется, нет такого понятия, как factor. Часто ли используется фактор, и каково решение julia для этой проблемы?

ответ

3

PooledDataArray в пакете DataFrames является одной из возможных альтернатив, соответствующих факторам R. Ниже реализует свой пример, используя его:

julia> using DataFrames # install with Pkg.add(DataFrames) if required 

julia> x = ["high" , "medium" , "low" , "high" , "medium"]; 

julia> xf = PooledDataArray(x) 
5-element DataArrays.PooledDataArray{ASCIIString,UInt32,1}: 
"high" 
"medium" 
"low" 
"high" 
"medium" 

julia> xf.refs 
5-element Array{UInt32,1}: 
0x00000001 
0x00000003 
0x00000002 
0x00000001 
0x00000003 

julia> xfo = PooledDataArray(x,["low","medium","high"]); 

julia> xfo.refs 
5-element Array{UInt32,1}: 
0x00000003 
0x00000002 
0x00000001 
0x00000003 
0x00000002 
0

CategoricalArrays.jl «s CategoricalArray напоминающих факторы.

Смежные вопросы