导图社区 函数大总结
函数大总结,包括统计计算、按照某种规律生成某一数据(从0到有)、处理分割某一向量、保存工作目录、工作空间等等。
编辑于2022-06-09 22:24:43函数大总结
统计计算
通用参数
na.rm
输入逻辑值
= TRUE, 就不删除NA的数据
对一个数据内部的计算
mean
求平均值
median
求中位数
max
求最大值
min
求最小值
sd
求标准差
两组数据间的对照计算
lm
求回归线方程...
可以见到要指定Y轴变量名和X轴变量名,可以用Y ~ X,后边是数据框的名称
只好要用 abline 函数加在plot上哦
t.test
anova
apply function to elements of lists
tapply
根据x的不同水平对y使用FUN的函数
tapply(X = Veg$R, INDEX = Veg$Transect, FUN = mean)
sapply
对y的每一个变量使用FUN的函数
输出向量
输入必须是数据框
sapply(data.frame(Veg$R, Veg$ROCK, Veg$LITTER, Veg$ML, Veg$BARESOIL), FUN = mean)
改为cbind是不行的
lapply
对y的每一个变量使用FUN的函数
输出列表
原理同上
summary
算并显示各种信息
按照某种规律生成某一数据(从0到有)
rnorm
生成一个里边数值成正太分布的向量(随机分布),输入的量是这个数据的长度
还可以规定sd..即生成这组正态分布数据的标准差
gl
输入
第一个位置,级的个数
第二个位置,每个级包含的单元数
第三个位置,最后的总长度,等于前两者的乘积的整数倍,多于1倍就整个的去重复
输出
一参数
rep
第一个位置参数
向量,表面要重复的单元
第二个位置的参数
each =
单元中的每个数的重复的次数
直接输入
就是把单元整个重复的次数
seq
生成一个有序数列
参数1
从几
参数2
到几
by =
间隔是多少
c()
将括号内的东西按顺序结合为一个向量
输入
整数,数值,向量,矩阵,数据框,字符串,变量
数值变量,字符串
输出
向量
即list
按照一定顺序排列的一系列单元
factor()
这里是很关键的,因为pdata1的levels是随着pdata的levels的信息,并未随着数据子集范围的更改而更改....
原因是布尔逻辑向量扣除了那些值,但它们的levels信息还存在
所以factor函数可以运算出真正存在的levels,这是重新赋值到数据框那个向量中,然后其levels就是仅仅有其存在的两个了
data.frame()
将输入的单元按列排列,生成一个数据框
输入
数值变量,字符串,因子
输出
数据框
数据框会独立其输入变量外生成一组全新备份变量
其实际名称为------数据框变量名$子变量名
所以变量名不和直接注册的变量名冲突
列标签
变量名会按顺序作为列标签
vector()
功能和c一样,但更严谨和死板
输入
先输入一个整数定义长度
再输入每个位置的值
输出
向量
matrix()
创建一个具体的矩阵
输入
维数
数值变量
输出
矩阵
例子
例子
> Dmat <- matrix(nrow = 8, ncol = 4)
> Dmat[, 1] <- c(59, 55, 53.5, 55, 52.5, 57.5, 53, 55)
> Dmat[, 2] <- c(22.3, 19.7, 20.8, 20.3, 20.8, 21.5, 20.6, 21.5)
> Dmat[, 3] <- c(31.2, 30.4, 30.6, 30.3, 30.3, 30.8, 32.5, NA)
> Dmat[, 4] <- c(9.5, 13.8, 14.8, 15.2, 15.5, 15.6, 15.6, 15.7)
> Dmat
[,1] [,2] [,3] [,4]
[1,] 59.0 22.3 31.2 9.5
[2,] 55.0 19.7 30.4 13.8
[3,] 53.5 20.8 30.6 14.8
[4,] 55.0 20.3 30.3 15.2
[5,] 52.5 20.8 30.3 15.5
[6,] 57.5 21.5 30.8 15.6
[7,] 53.0 20.6 32.5 15.6
[8,] 55.0 21.5 NA 15.7
加标签
给列加上名称
colnames()
colnames(Dmat) <- ("wingcrd", "Tarsus", "Head", "Wt")
给行加上名称
rownames()
list()
将输入的单元按行排列,生成一个数据列
输入
数值变量,字符串,因子
例子
> x1 <- c(1, 2, 3)
> x2 <- c("a","b","c","d")
> x3 <- 3
> x4 <- matrix(nrow = 2, ncol = 2)
> x4[, 1] <- c(1, 2)
> x4[, 2] <- c(3, 4)
> Y <- list(x1 = x1, x2 = x2, x3 = x3, x4 = x4)
> Y
$x1
[1] 1 2 3
$x2
[1] "a" "b" "c" "d"
$x3
[1] 3
$x4
[,1] [,2]
[1,] 1 3
[2,] 2 4
输出
数据列
数据列中的每一项不必有相同格式
行标签
输入的变量名
rbind()
将输入的多个单元按输入顺序排成行,生成一个“便于查看的”向量
其它都跟cbind相同
按变量名输出行标签
cbind()
将输入的多个单元按输入顺序排成列,生成一个“便于查看的”向量
输入
整数,数值,向量,矩阵,数据框,字符串,变量
或数值变量,字符串
输出
向量
但其有2维,可以用[,]选定
列标签
最上面带有输入时的变量名作为“标签”
其不参与任何计算,只是便于查看而已
有一个默认现象...
若输入的那个元素没达到维数,那就自动补充其自己到那么多
见最右那个一
merge
合并两个数据框
其比cbind的优越性是,其可以按照两个数据框共同的一列来智能的填充其它的缺省
x, y, by = "ID"
by=
输入某一变量名,其作为相同的标示符合并两个数据集
这两个标识不必全等,有大部分吻合即可
然后按照长的那个处理。其它的用NA
all=
FALSE
缺省值
TRUE
如果数据框1里没有数据框2的样本数据,用NA填充,反之亦然
处理分割某一向量
split
cut
Operate on charactor vectors
strsplit
grep
sub
绘图
Cluster data
dist
hclust
heatmap
plot data
plot
总结某一data属性!
length
确定一数据的长度
dim
输入:向量,矩阵,cbind,数据框
输出:维数...
unique
输入
任何向量,矩阵,数据框
输出
所有拥有独特组合的行,或值的单元组成的向量
但并未排序
colnames()
多维数据的列名,用于查明和修改
rownames()
多维数据的行名,也用于查明和修改
order
确定数据每一位的顺序...然后输出一个对应序数的向量
str
显示一个对象的内部结构,优点是任何对象..
names
显示一个数据框或cbind,矩阵的所有变量名称!
summary
计算每个变量的基本信息
其优势是能显示每个变量内的数据属性,还有一大优势是显示NA值的个数
还有其levels?
其实和str很像
table
计算列链表
就是输入的向量变量中每一个levels的出现次数
useNA = "ifany" 允许我们显示NA的个数
xtabs
ls
list objects in one variable
class
输入必须是一个向量
其显示出该向量中元素的具体属性
head
查看向量数据的前几行(自定),并列出数据的级信息
跟格式相关的转换
基础操作
结合数值,字符串,变量的方法
c()
将括号内的东西按顺序结合为一个向量
输入
整数,数值,向量,矩阵,数据框,字符串,变量
数值变量,字符串
输出
向量
即list
按照一定顺序排列的一系列单元
cbind()
将输入的多个单元按输入顺序排成列,生成一个“便于查看的”向量
输入
整数,数值,向量,矩阵,数据框,字符串,变量
或数值变量,字符串
输出
向量
但其有2维,可以用[,]选定
列标签
最上面带有输入时的变量名作为“标签”
其不参与任何计算,只是便于查看而已
有一个默认现象...
若输入的那个元素没达到维数,那就自动补充其自己到那么多
见最右那个一
rbind()
将输入的多个单元按输入顺序排成行,生成一个“便于查看的”向量
其它都跟cbind相同
按变量名输出行标签
vector()
功能和c一样,但更严谨和死板
输入
先输入一个整数定义长度
再输入每个位置的值
输出
向量
matrix()
创建一个具体的矩阵
输入
维数
数值变量
输出
矩阵
例子
例子
> Dmat <- matrix(nrow = 8, ncol = 4)
> Dmat[, 1] <- c(59, 55, 53.5, 55, 52.5, 57.5, 53, 55)
> Dmat[, 2] <- c(22.3, 19.7, 20.8, 20.3, 20.8, 21.5, 20.6, 21.5)
> Dmat[, 3] <- c(31.2, 30.4, 30.6, 30.3, 30.3, 30.8, 32.5, NA)
> Dmat[, 4] <- c(9.5, 13.8, 14.8, 15.2, 15.5, 15.6, 15.6, 15.7)
> Dmat
[,1] [,2] [,3] [,4]
[1,] 59.0 22.3 31.2 9.5
[2,] 55.0 19.7 30.4 13.8
[3,] 53.5 20.8 30.6 14.8
[4,] 55.0 20.3 30.3 15.2
[5,] 52.5 20.8 30.3 15.5
[6,] 57.5 21.5 30.8 15.6
[7,] 53.0 20.6 32.5 15.6
[8,] 55.0 21.5 NA 15.7
加标签
给列加上名称
colnames()
colnames(Dmat) <- ("wingcrd", "Tarsus", "Head", "Wt")
给行加上名称
rownames()
data.frame()
将输入的单元按列排列,生成一个数据框
输入
数值变量,字符串,因子
输出
数据框
数据框会独立其输入变量外生成一组全新备份变量
其实际名称为------数据框变量名$子变量名
所以变量名不和直接注册的变量名冲突
列标签
变量名会按顺序作为列标签
list()
将输入的单元按行排列,生成一个数据列
输入
数值变量,字符串,因子
例子
> x1 <- c(1, 2, 3)
> x2 <- c("a","b","c","d")
> x3 <- 3
> x4 <- matrix(nrow = 2, ncol = 2)
> x4[, 1] <- c(1, 2)
> x4[, 2] <- c(3, 4)
> Y <- list(x1 = x1, x2 = x2, x3 = x3, x4 = x4)
> Y
$x1
[1] 1 2 3
$x2
[1] "a" "b" "c" "d"
$x3
[1] 3
$x4
[,1] [,2]
[1,] 1 3
[2,] 2 4
输出
数据列
数据列中的每一项不必有相同格式
行标签
输入的变量名
几种格式中的转化
as. matrix
输入
数据框
cbind生成的向量
输出
矩阵
as. dataframe
输入
数据框
cbind生成的向量
输出
数据框
几种格式的查看
is. matrix
输出若是TRUE则不是矩阵
输出若是FALSE则是
is. dataframe
输出若是TRUE则不是数据框
输出若是FALSE则是
给矩阵和数据框修改和添加标签
加列标签
colnames()
colnames(Dmat) <- ("wingcrd", "Tarsus", "Head", "Wt")
加行标签
rownames()
给向量添加标签
names()
直接输入一个同样长度的向量即可
选定矩阵,向量,数据框中具体的位置[]
向量中的具体位置
需要一个值来确定
[a]
cbind生成的向量是例外需要两个值定位
数据框&矩阵中的具体位置
需要两个值来确定它
[a,b]
若省略一边则表示所有行或列
转置一个有两个维的cbind,数据框,或矩阵
t()
列变成行,行变成列
其实只要是都是纯数字的cbind和数据框都可以输入到用矩阵做变量的函数
as系
factor
定义变量作为因子
对数据加一些标注
levels
输入
必须是factor向量,就是带引号的东西的那种单元的向量
输出
没有...其就是可以让其它赋进来的值覆盖其输入的factor向量的对应项
其实你可以见到它是factor函数的一个辅助参数函数,其可以更改一个因子变量的标注
table函数
输入(参数)
x
(一个数据框中的变量)
不能是一个数据框...或其它多维的
y
(一个数据框中的变量向量,另一个数据框中的变量向量)
输出
按照级显示每个级在向量中出现的频率
按第二个为级,显示第一个各个数的频率
功能上相当于结合布尔向量,length等...
例子
数据框的str
输出类
paste
将变量连接为字符串
paste("a", "b", sep = "")
外源数据录入
dir
scan
read.table 把数据储存于数据框中
scan 把数据储存于矩阵中
其对大量数据的运算更加迅速
(数百万个以上)
但前提是数据必须都是数值
所以不需要什么header = TRUE
所以也不需要那些header标题,你可能要添加些索引变量
read.table
4. 使用read.table函数将数据载入到R
小数点
read.table 默认是以.做小数点
若ascii中以逗号做小数点,则需
Squid <- read.table(file = "C:/RBook/squid.txt", header = TRUE, dec = ",")
对于一些奇葩电脑本身以逗号做小数点则需
Squid <- read.table(file = "C:/RBook/squid.txt", header = TRUE, dec = ".")
否则R会把数值做分量载入
Squid <- read.table(file = "C:\\RBook\\squid.txt", header = TRUE)
这个地址可以在文件属性中查看
但windows要多加一个/
或Squid <- read.table(file = "C:/RBook/squid.txt", header = TRUE)
header = TRUE 表示第一行包括了标题
这个标题不算在数据框真正的第一行...
而是一堆变量名...
若文件中没有标签可改为 header = FALSE
read. table函数可以有非常多的选项
数据字段中有空格
strip.white = TRUE
setwd函数
在同一工作目录多次提取文件,用其可省略read.table函数中的目录路径
setwd("C:\\RBook\\")
Squid <- read.table(file = "squid.txt", header = TRUE)
特殊类
find elements of one vector in another
match
%in%
Measuring Performance
all.equal(), identical() to compare values.
system.time() to measure how long evaluation takes.
microbenchmark to compare times for different functions.
Rprof() to summarize time in each function call.
lineprof to profile each line of code.
Debugging
traceback(): what went wrong?
debug(): step through a function.
browser(): insert a break-point in your own function / script.
Help debug errors.
R脚本
以.R结尾的文本文档
选定子集类
变量[,m:n]
第m到第n列
变量[布尔逻辑条件]
满足一定布尔逻辑条件的变量子集
生成逻辑输出类
逻辑值可以录入到哪?
==布尔向量
is系
%in%
将变量转化为逻辑布尔向量,如果是BCR或ABL就转化为TRUE,否则就为FALSE
其实就是==那个的另一种表示法
常见错误
0的对数
如果你的数据里有0,你不能对其做对数变换
通常你可以考虑将每个数据都加1
0的色彩
0是没有颜色
所以在图上没有表示,你想让它显示要每个数据加上1
分清l和1
plot (x, type = "l")
是l,代表line,别写成1了!
工作空间
ls()
观察工作空间有哪些变量
rm(list = ls(all = TRUE)
清空当前工作空间
保存工作目录
setwd()
设置工作目录
read.table
从ascii文件读取数据储存在数据框中
write.table
将数据框输出生成各种格式的文件
scan
从ascii文件读取数据存储于矩阵中
Packages
已经安装的包要使用
library(parallel)
从网络来源安装新包
source("http://bioconductor.org/biocLite.R")
指定下载地址
biocLite("IRanges")
这一步就安装了,biocLite函数就是从网络安装新包的
library("IRanges")
查询已经加载的包
head(search(), 3)
查询某个包的使用帮助
help(package = "IRanges")