R 因子


因子

因子用于对数据进行分类。因子的例子有:

  • 人口统计:男/女
  • 音乐:摇滚、流行、古典、爵士
  • 训练:力量、耐力

要创建因子,请使用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
亲自试一试 »