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函数