因子用于对数据进行分类。因子的例子有:
要创建因子,请使用factor()
函数并添加一个向量作为参数:
# Create a factor
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))
# Print the factor
music_genre
结果:
[1] Jazz Rock Classic Classic Pop Jazz Rock Jazz 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"
您还可以通过添加以下内容来设置级别levels
里面的论证factor()
功能:
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
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!