Tampaknya ada perbedaan antara level dan label sebuah faktor di R. Hingga saat ini, saya selalu berpikir bahwa level adalah nama 'sebenarnya' dari level faktor, dan label adalah nama yang digunakan untuk output (seperti tabel dan plot) . Jelas, ini bukan masalahnya, seperti yang ditunjukkan contoh berikut:
df <- data.frame(v=c(1,2,3),f=c('a','b','c'))
str(df)
'data.frame': 3 obs. of 2 variables:
$ v: num 1 2 3
$ f: Factor w/ 3 levels "a","b","c": 1 2 3
df$f <- factor(df$f, levels=c('a','b','c'),
labels=c('Treatment A: XYZ','Treatment B: YZX','Treatment C: ZYX'))
levels(df$f)
[1] "Treatment A: XYZ" "Treatment B: YZX" "Treatment C: ZYX"
Saya pikir level ('a', 'b', 'c') masih bisa diakses saat membuat skrip, tetapi ini tidak berhasil:
> df$f=='a'
[1] FALSE FALSE FALSE
Tapi ini memang:
> df$f=='Treatment A: XYZ'
[1] TRUE FALSE FALSE
Jadi, pertanyaan saya terdiri dari dua bagian:
Apa perbedaan antara level dan label?
Apakah mungkin memiliki nama yang berbeda untuk tingkat faktor untuk skrip dan keluaran?
Latar belakang: Untuk skrip yang lebih panjang, skrip dengan level faktor pendek tampaknya jauh lebih mudah. Namun, untuk laporan dan plot, tingkat faktor yang pendek ini mungkin tidak memadai dan harus diganti dengan nama pendahulu.
levels
argumen, Anda memberikan nilai dalam input yang harus cocok denganlabels
argumen. R menyimpan label (sebagai atributlevels
, dan ada kebingungan) dan menyimpan kode integer secara internal. Kode integer ini tidak ada hubungannya dengan nilai asli, apapun jenisnya. Saya pikir Anda salah paham.Saya menulis paket "lfactors" yang memungkinkan Anda merujuk ke level atau label.
Perhatikan bahwa sebuah lfactor mensyaratkan bahwa level-level tersebut berupa angka sehingga tidak dapat disalahartikan dengan label.
sumber