English · PDF 82
有许多用于创建新变量的函数可以与 mutate() 一起使用。关键属性是这些函数必须是向量化的:它必须接受一个值向量作为输入,并返回一个具有相同数量值的向量作为输出。无法列出你可能用到的所有函数,但这里精选了一些经常有用的函数:
算术运算符 +, -, *, /, ^
它们都是向量化的,使用所谓的“循环规则”。如果一个参数比另一个短,它会被自动扩展到相同的长度。当其中一个参数是单个数字时最有用:air_time / 60、hours * 60 + minute 等。
算术运算符与你稍后将学到的聚合函数结合使用也很有用。例如,x / sum(x) 计算占总数的比例,y - mean(y) 计算与均值的差。
模运算(%/% 和 %%)
%/%(整数除法)和 %%(取余),其中 x == y * (x %/% y) + (x %% y)。模运算是一个方便的工具,因为它允许你将整数拆分成若干部分。例如,在 flights 数据集中,你可以用以下代码从 dep_time 计算 hour 和 minute:
transmute(flights, dep_time, hour = dep_time %/% 100, minute = dep_time %% 100 ) #> # A tibble: 336,776 × 3 #> dep_time hour minute #>