R 语言因子
因子
Factors(因子) 用于对数据进行分类。这些因素的例子包括:
- 人口统计: Male/Female
- 音乐: Rock, Pop, Classic, Jazz
- 训练: Strength, Stamina
要创建因子,请使用 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
Levels: 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
访问因子
要访问因子中的项,请使用 []
括号根据索引编号:
实例
访问第 3 项:
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))
music_genre[3]
结果如下:
[1] Classic
Levels: Classic Jazz Pop Rock修改项
要更改特定项的值,请根据索引编号:
实例
修改第 3 项的值:
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请注意,如果尚未在因子中指定特定项的值,则无法更改该项的值。下面的实例将产生一个错误:
实例
尝试将第 3 项("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
参数中指定了它,那就没问题了:
实例
修改第 3 项的值:
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