第5章 高级数据管理

注:R语言的再复习之路

1. 数值和字符处理函数

1.1 数学函数

函数描述
ceiling(x)不小于x的最小整数
floor(x)不大于x的最大整数
round(x, digits = n)将x舍入为指定位的小数
signif(x, digits = n)将x舍入为指定有效数字位的数

1.2 统计函数

函数描述
median(x)中位数
mad(x)绝对中位差
quantile(x, probs)求分位数。x为待求分位数的数值型向量,probs为一个由[0, 1]之间的概率值组成的数值型向量
scale(x, center = TRUE, scale = TRUE)为数据对象x按列进行中心化(center = TRUE)或标准化(center = TRUE, scale = TRUE)

1.3 概率函数

在R中,概率函数如下所示:
[dpqr]distribution_abbreviation()
其中d = 密度函数(density)
p = 分布函数(distribution function)
q = 分位数函数(quantile function)
r = 生成随机数(随机偏差)

分布名称缩写
Beta分布beta
二项分布binom
柯西分布cauchy
卡方分布chisq
指数分布exp
F分布f
Gamma分布gamma
几何分布geom
超几何分布hyper
对数正态分布lnorm
Logistic分布logis
多项分布multinom
负二项分布nbinom
正态分布norm
泊松分布pois
t分布t
均匀分布unif

获取多元正态分布的数据利用MASS包中的mvrnorm(n, mean, sigma)函数

1.4 字符处理函数

函数描述
nchar(x)计算x中的字符数量
substr(x, begin, end)提取或替换一个字符向量中的子串
strsplit(x, split, fixed = FALSE)在split处分割字符向量x中的元素。若pattern = FALSE,则pattern为一个正则表达式,若fixed = TRUE, 则pattern为一个文本字符串
paste(…, sep = ’ ')连接字符串,分隔符为sep

1.5 其他实用函数

函数描述
seq(from, to, by)生成一个序列
rep(x, n)将x重复n次
cut(x, n)将连续型变量x分割为有着n个水平的因子,使用ordered_result = TRUE可以创建一个有序型因子
pretty(x, n)选取n+1个等间距的取整值,将一个连续型变量x分割为n个区间
apply(x, MARGIN, FUN, …)x为数据对象,MARGIN为维度下标,MARGIN = 1表示行,MARGIN = 2表示列
sapply(x, ‘[’, index)x为列表,’['是一个可以提取某个对象的一部分的函数,index = i则提取第i个元素

2. 控制流

2.1 重复和循环

2.1.1 for结构

#格式
for (var in seq) statement

#例子
for(i in 1:10) print('Hello!')

2.1.2 while结构

#格式
while(cond) statement

#例子
i <- 10
while(i > 0) {print('Hello!'); i <- i - 1}

2.2 条件执行

2.2.1 if-else结构

#格式
if (cond) statement1 else statement2

#例子
if (!is.factor(grade))
    grade <- as.factor(grade)
else
    print('Grade already is a factor')

2.2.2 ifelse结构

#格式
ifelse(cond, statement1, statement2)

#例子
outcome <- ifelse(score > 0.5, 'Passed', 'Failed')

2.2.3 switch结构

#格式
switch(expr, ...)

#例子
feelings <- c('sad', 'afraid')
for (i in feelings)
    print(
        swwitch(i, 
            happy = 'I am glad you are happy',
            afraid = 'There is nothing to fear',
            sad = 'Cheer up',
            angry = 'Calm down now'
            )
         )

3. 用户自编函数

#格式
myfunction <- function(arg1, arg2, ...){
    statements
    return(object)
    }

4. 整合与重构

4.1 转置

函数t()

4.2 整合数据

#格式
aggregate(x, by, FUN)

#例子
attach(mtcars)
aggdata <-aggregate(mtcars, by = list(cyl, gear), FUN = mean, na.rm = TRUE)

4.3 reshape2包

4.3.1 融合

#格式
melt(data, id.vars, variable.name, value.name)

#例子
melt(mydata, id.vars = c('ID', 'Time'), variable.name = 'variables', value.name = 'value')

4.3.2 重铸

#格式
newdata <- dcast(md, formula, fun.aggregate)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值