7. 字符串和因子

7.1 字符串

在R中,“字符串”是个常用的非正式术语,因为正式的”字符向量元素“读起来有点拗口。

7.1.1 创建和打印字符串

7.1.2 格式化数字

R提供了更通用的C风格的格式化函数sprintf。sprintf的第一个参数指定了格式化字符串,其中包括其他值的占位符。例如:%s 代表另一个字符串,%f和%e 分别代表

固定型格式和科学型格式的浮点数,%d表示证书。

> pow <- 1:3
> powers_of_e <- exp(pow)
> sprintf("%s %d = %f","Euler's constant to the power", pow, powers_of_e)
[1] "Euler's constant to the power 1 = 2.718282" 
[2] "Euler's constant to the power 2 = 7.389056" 
[3] "Euler's constant to the power 3 = 20.085537"

7.1.3 特殊字符

7.1.4 更改大小

使用toupper和tolower函数能把字符串中的字符全部转化为大写或小写

> toupper("I'm shouting")
[1] "I'M SHOUTING"
> tolower("I'm Whispering")
[1] "i'm whispering"

7.1.5 截取字符串

有两个函数可用户字符串:subsring和substr。若单纯的截取一个字符串的部分,可以随意使用其中一个,但是substring可以实现对同一字段的多次截取

> substring("abcdef", 1:6, 1:6)
[1] "a" "b" "c" "d" "e" "f"
> substr("abcdef", 2, 4)
[1] "bcd"

7.1.6 分割字符串

strsplit函数配合正则表达式可以轻松搞定分割字符串

7.1.7 文件路径

7.2 因子

因子是一个用于存储类别比那辆的特殊的变量类型。

7.2.1 创建因子

7.2.2 更改因子水平

我们可以通过制定levels参数来改变因子被创建时水平的先后顺序

factor(gender_char, levels = c("male", "female"))

7.2.3 去掉因子水平

在数据清洗过程中,可能发生需要去掉与因子水平相对应的数据。我们可以使用unique函数

7.2.4 有序因子

可以使用ordered函数,或者(通过给factor传入order = TRUE 参数)

7.2.5 将连续变量转化为类别

一个汇总数值变量的方法是计算有多少个值落入不同的”组“中,cut函数能将数值变量切成不同的块,然后返回一个因子。通常使用table函数得到每组数字的总和。

在下例中,我们随机的生成10000名工人的年龄数据,并他们按每10年分组:

> age <- 16 + 50*rbeta(10000,2,3)
> grouped_ages <- cut(age, seq.int(16,66,10))
> table(grouped_ages)
grouped_ages
(16,26] (26,36] (36,46] (46,56] (56,66] 
   1769    3501    2930    1539     261 

7.2.6 将类别变量转换为连续变量

7.2.7 生成因子水平

可以使用gl函数生成因子水平

7.2.8 合并因子

可以使用interation函数

转载于:https://www.cnblogs.com/qwe0723/p/7994411.html

你可能感兴趣的:(7. 字符串和因子)