统计分析:使用 R 入门 / R / 因素
外观
< 统计分析:使用 R 入门 | R
在 R 中,分类变量存储为一种称为因素的特殊向量对象。这与填充了一组名称的字符向量不同(不要将两者混淆)。特别地,R 必须被告知每个元素只能是若干已知级别之一(例如,男性或女性)。如果尝试将具有不同未知级别的数 据点放入因素中,R 会报错。当将因素打印到屏幕上时,R 也会列出因素可以采用的所有可能的级别(这可能包括不存在的级别)。
输入factor()
函数创建因素并定义可用级别。默认情况下,级别取自向量中的级别***。实际上,您通常不需要使用factor()
,因为在从文件读取数据时,R 默认情况下假设文本应转换为因素(参见 统计分析:使用 R 入门 / R / R / 数据框)。您可能需要使用as.factor()
。在内部,R 将级别存储为从 1 开始的数字,但并不总是清楚哪个数字对应于哪个级别,通常不需要知道。
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,男性使用 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")) # 然后可以将其转换为命名级别