参考内容:教程一,

非数值型变量(类别变量和顺序变量)在R语言中称为因子,也称为因子型变量。因子型变量内的所有非重复值,被称为因子水平(levels)。

创建因子
在R语言中可以使用factor()函数和gl()函数来创建因子变量。

(1)使用factor()函数

factor()函数的语法格式为:

f <- factor(x=charactor(), levels, labels=levels, exclude = NA, ordered = is.ordered(x), namax = NA)

其中:

x :数据向量,也就是被转换成因子的向量;最简单的因子构成可以只输入x即可。如以下代码,输出结果中Levels里面去重显示了了A B C D Z,即为因子中的水平。

> f<- c('A','B','C','A','D','A','C','Z')
> fc1<- factor(f)
> fc1
[1] A B C A D A C Z
Levels: A B C D Z

levels
可选向量,表示因子水平,并且指定了因子中水平的排序。当此参数缺省时,默认为x中包含的所有非重复值。
fc1未定义levels,因此因子中水平排序就按照字母顺序来,但是fc2定义了levels,因子中的顺序就据此调整。
fc3中,levels中因子不包含C,则输出fc3里面C所在的位置就是。

> fc2<- factor(f,levels=c('Z','B','A','D','C'))
> fc2
[1] A B C A D A C Z
Levels: Z B A D C> fc3<- factor(f,levels=c('Z','B','A','D'))
> fc3
[1] A    B    <NA> A    D    A    <NA> Z
Levels: Z B A D

labels:可选向量,用来给各水平单独命名(也可理解为加标签),缺省时默认取levels的值;fc4定义了labels后,输出结果就是各水平对应的标签。

fc4<- factor(f,levels=c('Z','B','A','D','C'),labels=c(26,2,1,4,3))
fc4

exclude:从x中剔除的水平值,默认为NA值。使用该命令时要注意对应调整labels的长度。
fc5中尝试剔除C,但是报错提示labels的向量长度不对,继而输出默认未定义exclude时候的结果。
fc6中将labels的数量调整为4,输出结果就将C用代替了。

> fc5<- factor(f,levels=c('Z','B','A','D','C'),labels=c(26,2,1,4,3),exclude=c('C'))
Error in factor(f, levels = c("Z", "B", "A", "D", "C"), labels = c(26,  : 'labels'不对;长度5应该是一或4
> fc5
[1] A B C A D A C Z
Levels: Z B A D C
> fc6<- factor(f,levels=c('Z','B','A','D','C'),labels=c(26,2,1,3),exclude=c('C'))
> fc6
[1] 1    2    <NA> 1    3    1    <NA> 26
Levels: 26 2 1 3

ordered:逻辑值,因子水平是否有顺序(编码次序),若有取TRUE,默认取FALSE;
fc7未定义ordered,即默认为FALSE,出来的结果没有顺序。fc8定义了,故有顺序。

> fc7<- factor(f,levels=c('Z','B','A','D','C'),labels=c(26,2,1,4,3))
> fc7
[1] 1  2  3  1  4  1  3  26
Levels: 26 2 1 4 3
> fc8<- factor(f,levels=c('Z','B','A','D','C'),labels=c(26,2,1,4,3),ordered=TRUE)
> fc8
[1] 1  2  3  1  4  1  3  26
Levels: 26 < 2 < 1 < 4 < 3

nmax:水平个数的限制。对不起这个我不想研究了就这样吧我要睡觉。。。

总结:这个函数可。太。烦。了!

R语言-因子的构造-factor函数相关推荐

  1. R语言使用levels()函数来查看factor因子变量水平级别(levels)、使用levels参数重新排序因子水平级别、并可视化柱状图

    R语言使用levels()函数来查看factor因子变量水平级别(levels).使用levels参数重新排序因子水平级别.并可视化柱状图 目录

  2. R语言使用levels()函数来查看factor因子变量水平级别(levels)

    R语言使用levels()函数来查看factor因子变量水平级别(levels) 目录 R语言使用levels()函数来查看factor因子变量水平级别(levels)

  3. predict函数 R_学习|R语言做机器学习的常用函数总结

    预测函数:predict() type="prob"判别该量度的昆虫归类为A.B和C的概率:type="response":判别该量度的昆虫的类别: 预测分类的 ...

  4. R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(添加箱图、带缺口的小提琴图、小提琴图)实战

    R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(添加箱图.带缺口的小提琴图.小提琴图)实战 目录 R语言使用ggplot2包geom_jit ...

  5. R语言可视化、编写自定义函数可视化水平排序条形图(horizontal bar plot)、自定义图像布局模仿经济学人杂志可视化效果、右侧添加标签数值图像方框、自定义背景色、水平条形图中间线条等

    R语言可视化.编写自定义函数可视化水平排序条形图(horizontal bar plot).自定义图像布局模仿经济学人杂志可视化效果.右侧添加标签数值图像方框.自定义背景色.水平条形图中间线条.网格线 ...

  6. R语言编写自定义描述统计计算函数、使用doBy包的summaryBy函数计算不同分组(group)的描述性统计值(Descriptive statistics by group、样本个数、均值、标准)

    R语言编写自定义描述统计计算函数.使用doBy包的summaryBy函数计算不同分组(group)的描述性统计值(Descriptive statistics by group using summa ...

  7. R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(颜色配置:连续色彩、离散色彩、色彩梯度)实战

    R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(颜色配置:连续色彩.离散色彩.色彩梯度)实战 目录 R语言使用ggplot2包geom_ji ...

  8. R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(自定义色彩、形状)实战

    R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(自定义色彩.形状)实战 目录 R语言使用ggplot2包geom_jitter()函数绘制分 ...

  9. R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(双分类变量分组:色彩配置、形状配置)实战

    R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(双分类变量分组:色彩配置.形状配置)实战 目录 R语言使用ggplot2包geom_jitt ...

最新文章

  1. IDEA编译时出现 Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8
  2. CSS3如何实现0.5边框
  3. node.js require 自动执行脚本 并生成html,利用node.js实现自动生成前端项目组件的方法详解...
  4. C++ | 内联函数 inline
  5. virtualbox中安装ubuntu
  6. 把 mysql 整个加载进内存磁盘中_MySQL 缓冲池 是什么?
  7. html相对位置置顶,css定位(position)属性怎么用?
  8. TensorFlow安装中碰到的问题汇总
  9. 【渝粤教育】国家开放大学2018年秋季 0275-22T内科护理学 参考试题
  10. 在没有显示器和IP未知的情况下如何使用树莓派
  11. AI 全自动玩斗地主,靠谱吗?Douzero算法教程
  12. 思维导图不会画,没关系,实用思维导图模板分享
  13. cmd命令行常用指令
  14. VS2015:解决VS2015许可证已过期的问题
  15. 联想ThinkPad装window10系统
  16. 台湾中华大学-田庆诚教授-射频放大器-观看笔记 1
  17. C语言设计流水灯程序,花式流水灯c语言程序.pdf
  18. Android安卓集成融云推送踩坑
  19. 三星530换固态硬盘_三星 870QVO 首测:探寻全球容量最大消费级固态硬盘的秘密...
  20. linux驱动中probe函数是怎么调用的

热门文章

  1. 病毒先生:天网恢恢,区块链行业的安全由谁来守护?
  2. 笔记—R语言做相关气泡图
  3. 打印和显示的字体种类
  4. 全球都热炸了,谷歌服务器已经崩掉了
  5. 第一性原理计算软件攻略-利用VESTA绘制差分电荷密度图解
  6. 安卓手机端口号怎么查看_安卓手机里的专业模式究竟该怎么拍?
  7. Git - 强制覆盖本地代码[与远程仓库保持一致]
  8. 斯坦福机器狗的设计与实现 (在组装和测试中遇到的问题及解决办法,亲测有效,出现Host does not exist问题的解决)
  9. 1、智能盆栽初步了解
  10. java 7编程高级进阶_Java7编程高级进阶-积累(1)