R 因子
因子
因子用於對資料進行分類。例如,因子包括:
- 人口統計:男性/女性
- 音樂:搖滾、流行、古典、爵士
- 訓練:力量、耐力
要建立因子,請使用 factor()
函式並將向量作為引數新增
示例
# 建立一個因子
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))
# 列印因子
music_genre
結果
[1] Jazz Rock Classic Classic Pop Jazz Rock Jazz Levels: Classic Jazz Pop Rock
從上面的例子可以看出,該因子有四個級別(類別):Classic、Jazz、Pop 和 Rock。
要僅列印級別,請使用 levels()
函式
示例
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))
levels(music_genre)
結果
[1] "Classic" "Jazz" "Pop" "Rock"
您還可以透過在 factor()
函式中新增 levels
引數來設定級別
示例
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"), levels = c("Classic", "Jazz", "Pop", "Rock", "Other"))
levels(music_genre)
結果
[1] "Classic" "Jazz" "Pop" "Rock" "Other"
因子長度
使用 length()
函式找出因子中包含多少項
示例
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))
length(music_genre)
結果
[1] 8
訪問因子
要訪問因子中的項,請使用 []
方括號引用索引號
示例
訪問第三項
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))
music_genre[3]
結果
[1] Classic Levels: Classic Jazz Pop Rock
修改單個項的值
透過索引號引用來修改特定項的值
示例
更改第三項的值
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))
music_genre[3] <- "Pop"
music_genre[3]
結果
[1] Pop Levels: Classic Jazz Pop Rock
請注意,如果一個項尚未在因子中指定,您將無法更改其值。以下示例將產生一個錯誤
示例
嘗試將第三項(“Classic”)的值更改為不存在/未預定義的項(“Opera”)
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))
music_genre[3] <- "Opera"
music_genre[3]
結果
Warning message: In `[<-.factor`(`*tmp*`, 3, value = "Opera") : invalid factor level, NA generated
但是,如果您已經在 levels
引數中指定了它,它將起作用
示例
更改第三項的值
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"), levels = c("Classic", "Jazz", "Pop", "Rock", "Opera"))
music_genre[3] <- "Opera"
music_genre[3]
結果
[1] Opera Levels: Classic Jazz Pop Rock Opera