手册
目录
收藏398
分享
阅读2686
更新时间2025-08-13
因子用于对数据进行分类。以下是一些因子的例子:
要创建一个因子,请使用 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
相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
9
精选课程
							
							共5课时
17.2万人学习
							
							共49课时
77万人学习
							
							共29课时
61.7万人学习
							
							共25课时
39.3万人学习
							
							共43课时
70.9万人学习
							
							共25课时
61.6万人学习
							
							共22课时
23万人学习
							
							共28课时
33.9万人学习
							
							共89课时
125万人学习