2016-12-20 3 views
0

私はSPSSからデータをインポートするため、memisc:data.setを使用します。私はlevels()を求めるときオブジェクトから値ラベル(SPSSの意味で)を得ることができます。私はそれをプロットの目盛りのラベルに使用します。メモ:data.setを変更すると値ラベル(レベル)が失われるR

data.set(以下のexmpaleのように)を変更すると、levels()はもう機能しません。

library('memisc') 
# example dta 
d <- data.set(a = sample(1:100)) 
d$a_strat <- cut(d$a, breaks=seq(1,100, by=10)) 

# "modify" the data.set 
e <- d[,c('a_strat')] 

# it is still a data.set but "a_strat" changed it's type 
> class(e) 
[1] "data.set" 
attr(,"package") 
[1] "memisc" 

は今2 data.seta_stratの異なるデータ型を見てみましょう。

> str(d$a_strat) 
Factor w/ 9 levels "(1,11]","(11,21]",..: 4 9 3 1 NA 9 5 4 9 9 ... 
> str(e$a_strat) 
$ Nmnl. item w/ 9 labels for 1,2,3,... int 4 9 3 1 NA 9 5 4 9 9 ... 

実用上の問題は、第2のdata.setでそれを行うことはできません。

> levels(e$a_strat) 
NULL 

しかし、これは

> labels(e$a_strat) 

Values and labels: 

    1 '(1,11]' 
    2 '(11,21]' 
    3 '(21,31]' 
    4 '(31,41]' 
    5 '(41,51]' 
    6 '(51,61]' 
    7 '(61,71]' 
    8 '(71,81]' 
    9 '(81,91]' 

に動作します。しかし、私が使用している場合axis(..., labels=labels(e$_strat))に値ラベルをプロットするために(例えば(32,41])が表示されていないこと。その代わりに値(1,2、...、9)が目盛りに表示されます。

私はそれを解決する方法がわかりません。

答えて

0

ここで小さなヘルパーはas.factor()です。 だから、この

axis(..., labels=labels(as.factor(e$_strat))) 

のようになります。しかし、ポジティブその答えを評価しないでください。 ;)私はまだタイプa_stratが私の例で変更された理由を理解できません。

関連する問題