私は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.set
でa_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
)が目盛りに表示されます。
私はそれを解決する方法がわかりません。