跳至内容

统计分析:使用 R 入门 / R / 因素

来自维基教科书,开放的书籍,开放的世界
在 R 中,分类变量存储为一种称为因素的特殊向量对象。这与填充了一组名称的字符向量不同(不要将两者混淆)。特别地,R 必须被告知每个元素只能是若干已知级别之一(例如,男性女性)。如果尝试将具有不同未知级别的数 据点放入因素中,R 会报错。当将因素打印到屏幕上时,R 也会列出因素可以采用的所有可能的级别(这可能包括不存在的级别)。

factor() 函数创建因素并定义可用级别。默认情况下,级别取自向量中的级别***。实际上,您通常不需要使用factor(),因为在从文件读取数据时,R 默认情况下假设文本应转换为因素(参见 统计分析:使用 R 入门 / R / R / 数据框)。您可能需要使用as.factor()。在内部,R 将级别存储为从 1 开始的数字,但并不总是清楚哪个数字对应于哪个级别,通常不需要知道。

序数变量,即级别具有自然顺序的因素,在 R 中称为有序因素。它们可以通过创建普通因素的方式创建,但需要额外指定ordered=TRUE
输入
state.region # 因素示例:注意级别已打印出来

state.name # 这*不是*因素 state.name[1] <- "Any text" # 可以在字符向量中替换文本 state.region[1] <- "Any text" # 但不能在因素中 state.region[1] <- "South" # 这可以 state.abb # 这不是因素,只是字符向量

character.vector <- c("Female", "Female", "Male", "Male", "Male", "Female", "Female", "Male", "Male", "Male", "Male", "Male", "Female", "Female" , "Male", "Female", "Female", "Male", "Male", "Male", "Male", "Female", "Female", "Female", "Female", "Male", "Male", "Male", "Female" , "Male", "Female", "Male", "Male", "Male", "Male", "Male", "Female", "Male", "Male", "Male", "Male", "Female", "Female", "Female") #a bit tedious to do all that typing
  1. 可能更容易使用代码,例如,女性使用 1,男性使用 2

Coded <- factor(c(1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1)) Gender <- factor(Coded, labels=c("Female", "Male")) # 然后可以将其转换为命名级别

结果
华夏公益教科书