R学习笔记(字符串和因子)

笔记内容基于《学习R》一书

字符串

创建和打印字符串

  1. 字符向量可以使用c函数创建,并用单引号或双引号括起来。

  2. paste
    将不同的字符串组合起来,默认使用空格分开,可通过参数sep更改分隔符,或者使用paste0去掉分隔符。collapse参数可以将结果收缩成一个字符串,并设置不同字符串之间的连接符号。
    对于不同长度的向量的拼接,paste会循环所有较短的向量,以满足最长向量
    在这里插入图片描述

  3. toString常用于打印向量,使用逗号和空格分隔每个元素,通过width参数限制打印次数。
    在这里插入图片描述

  4. cat拼接方式与paste不同
    在这里插入图片描述

  5. noquote函数可以去除字符的引号,使文本更具可读性。
    在这里插入图片描述

格式化数字

  1. formatC
    允许用户在R中使用C语言风格,输入应都是numeric类型,输出是character类型。
    常用参数
    参数digits指定显示的数字的位数,width设定显示的字符宽度,宽度不足的在前补上空格。format可指定输出的形式,==format=“e”==表示以科学计数法输出结果。
    在这里插入图片描述
  2. sprintf和在其他语言中用法一样,第一个参数包括字符串或数字变量的占位符,其他参数逐个带入占位符。其中==%s、%f、%e、%d==分别代表字符串、浮点数、科学型浮点数、整数。
    对于不同长度的输入(针对每个输入而言),与paste一样,会循环所有较短的向量,以满足最长向量,但是输入的个数要与占位符的个数一致
    在这里插入图片描述
  3. format、prettyNum
    format与formatC用法相似,其中指定参数trim=TRUE可去除输出右侧多余的0,scientific=TRUE可指定以科学计数法输出结果。
    prettyNum常用语格式化非常大或者非常小的数。
    在这里插入图片描述

特殊字符

制表符等符号的打印与其他语言一样,要加上反斜杠,并且使用cat打印,参数fill=TRUE使光标在一行结束时移动到下一行。
在这里插入图片描述
注意print函数打印时结果与cat不同。
在这里插入图片描述

大小写

toupper、tolower将字符串全部改写为大写或者小写。

截取字符串

substring、sunstr,使用方法相同(与其他语言不同),第一个参数为原始字符串,第二个参数为为开始截取的位置,第三个参数为截取的最后的位置。(注意R中字符串下标是从1开始
两者的不同在于,substring会循环原始字符向量进行直到截取结束,substr不会循环,一旦遇到空字符串就会结束。
在这里插入图片描述

分割字符串

strsplit
第一个参数为被分割的字符串,第二个参数为分割依据,fixed=TRUE意味着split的参数是固定长度的字符串而不是正则表达式,当然也可以使用正则表达式进行特殊处理。strsplit返回的是一个列表。
在这里插入图片描述
在这里插入图片描述

因子

因子用于储存类别变量

创建

  1. 使用文本创建数据框时,R将文本默认为类别数据并进行转化。levels可查询因子的水平,nlevels可查询因子水平的个数。
    在这里插入图片描述
  2. factor创建因子

更改因子水平

  1. 使用factor 创建 因子时,可以使用levels参数更改创建时水平的先后顺序。或者在因子创建之后,再次使用factor及参数levels,此时它的参数是当前的因子而不是字符向量。
    不要使用levels函数直接更改因子,因为此时将重新为每一个水平打上新的标签,更改数据值。

  2. relevel,输入因子以及想要的次序即可。
    在这里插入图片描述

去掉因子值

数据清洗时常用到

unique函数可以查看现有的因子水平以及所使用的因子水平。若果想要删除没有使用的因子水平,可以使用droplevels函数,他接受因子和数据框作为参数。
在这里插入图片描述
下面两种方法等价。在这里插入图片描述

有序因子

对于学生成绩有优良中差几个等级(水平),他们之间存在水平的差异,优比良好,等等,他们的这种关系即为因子的一种序关系的例子。
使用ordered函数或者给factor传入参数order=TRUE可实现此功能,且顺序就是定义时的顺序
在这里插入图片描述

将连续变量转化为类别

cut将数值变量切成不同的块并返回一个因子。使用table函数可看到每组数据的和。
在这里插入图片描述

将类别转化为连续变量

即将因子转化为数值变量。
数据清洗时常用到。例如打错字时R会将错误数字解释为字符串,并将其转化为因子
因子在R中使用整数来储存因子,因此不能直接使用as.numeric进行转化。方法有两个:

  1. 使用levels(<因子名>)[as.integer(<因子名>)]重构出因子,再调用as.numeric此方法较常用。

  2. 使用as.character将因子转化为字符向量,再使用as.numeric转化为数值。
    在这里插入图片描述
    在这里插入图片描述

生成因子水平

gl第一个因子为要生成的因子的水平数,第二个因子为每个水平要重复的次数,第三个因子(或者指定参数length)为输出的因子的长度,可用来设置交替值(每个因子重复次数为1,长度大于因子个数)。使用参数label给每个水平命名。
在这里插入图片描述

合并因子

interaction实现各变量之间的交叉合并

在这里插入图片描述

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值