在前面学习了基本数据管理,这节课要开始学习高级数据管理了,即R中作为数据处理基石的函数,如数学函数,统计函数,概率函数,字符处理函数等。
1.数学函数:用来处理数值型数据
abs(x) 取数据的绝对值,abs(-4)返回值为 4
sqrt(x) 求平方根 ,sqrt(25)返回值为 5
ceiling(x) 不小于 x 的最小整数, ceiling(3.475)返回值为 4
floor(x) 不大于 x 的最大整数 ,floor(3.475)返回值为3
trunc(x) 向 0 的方向截取的 x 中的整数部分, trunc(5.99)返回值为 5
round(x, digits=n) 将 x 舍入为指定位的小数 ,round(3.475, digits=2)返回值为 3.48
cos(x)、sin(x)、tan(x) 余弦、正弦和正切 ,cos(2)返回值为–0.416
log(x,base=n) 对 x 取以 n 为底的对数
2.统计函数:用来处理数值型数据
mean(x) 求平均数,mean(c(1,2,3,4))返回值为 2.5
median(x) 求中位数 ,median(c(1,2,3,4))返回值为 2.5
sd(x) 求标准差 ,sd(c(1,2,3,4))返回值为 1.29
var(x) 求方差, var(c(1,2,3,4))返回值为 1.67
mad(x) 求绝对中位差(median absolute deviation) ,mad(c(1,2,3,4))返回值为 1.48
quantile(x,probs) 求分位数。其中 x 为待求分位数的数值型向量,probs 为一个由[0,1]之间的概率值组成
的数值向量 # 求 x 的 30%和 84%分位点 :y <- quantile(x, c(.3,.84))
range(x) 求值域 ,x <- c(1,2,3,4) range(x)返回值为 c(1,4) diff(range(x))返回值为 3
sum(x) 求和 sum(c(1,2,3,4))返回值为 10
diff(x, lag=n) 滞后差分,lag 用以指定滞后几项。默认的 lag 值为 1
x<- c(1, 5, 23, 29)
diff(x)返回值为 c(4, 18, 6)
min(x) 求最小值 min(c(1,2,3,4))返回值为 1
max(x) 求最大值 max(c(1,2,3,4))返回值为 4
scale(x) 对数据进行标准化
3.概率函数
d = 密度函数(density)
p = 分布函数(distribution function)
q = 分位数函数(quantile function)
r = 生成随机数(随机偏差)
4.字符处理函数:可以从文本型数据中抽取信息
nchar(x), 计算 x 中的字符数量; nchar("abcde") length(x)返回值为 5
substr(x, start, stop) 提取或替换一个字符向量中的子串 ; substr(abcdef, 2, 4)返回值为"bcd"
rep(pattern, x, ignore. case=FALSE, fixed=FALSE) 在 x 中搜索某种模式。若 fixed=FALSE,则 pattern 为一个正则表达式。 若fixed=TRUE,则 pattern 为一个文本字符串。返回值为匹配的下标 grep("A",c("b","A","c"),fixed=TRUE)返回值为 2
sub(pattern, replacement, x, ignore.case=FALSE, fixed=FALSE) 在 x 中搜索 pattern,并以文本 replacement 将其替换。若 fixed=FALSE,则 pattern 为一个正则表达式。若 fixed=TRUE,则 pattern 为一个文本字符串。 sub("a","A","abcde")返回值为 Abcde。
strsplit(x, split, fixed=FALSE) 在 split 处分割字符向量 x 中的元素。若 fixed=FALSE,则 pattern 为一个正 则表达式。若 fixed=TRUE,则 pattern 为一个文本字符串.strsplit("abcde",c)返回“ab","cd"
paste(…, sep="") 连接字符串,分隔符为 sep;paste("Today is","Friday"),返回"Today is Friday"
toupper(x) 大写转换,toupper("abc")返回“ABC”
tolower(x) 小写转换 , tolower("ABC")返回“abc”
5.其它简单使用函数
length(x) 对象 x 的长度 ;x <- c(2, 5, 6, 9) length(x)返回值为 4
seq(from, to, by) 生成一个序列 indices <- seq(1,10,2) indices 的值为 c(1, 3, 5, 7, 9)
rep(x, n) 将 x 重复 n 次 y <- rep(1:3, 2) y 的值为 c(1, 2, 3, 1, 2, 3)
cat(... ,...) 连接...中的对象,并将其输出到屏幕上或文件中
6.重复和循环
循环结构重复地执行一个或一系列语句,直到某个条件不为真为止。循环结构包括for和while结构。
如for (i in 1:10) print("Hello") 单词Hello被输出了10次。
还可以用while,while循环重复地执行一个语句,直到条件不为真为止。
7.条件执行:在条件执行结构中,一条或一组语句仅在满足一个指定条件时执行。条件执行结构包括
if-else、ifelse和switch。