R语言函数速查
-
`ls()`
:查看工作空间中的变量名字 -
cat(,sep=)
输出 -
scan()
输入 -
rm()
删除 -
read.csv(file,encoding=’UTF-8)
-
read.table(file,reader=T,sep=’’,stringAsFactor=T,encoding=’’)
-
factor(data,levels=c(),labels=c())
#NA不是levels -
is.
判断is.infinite(1/0)
是否为无穷is.nan(0/0)
是否是错误值is.finite(x)
是否不为无穷
-
as.
类型转换 -
循环结构: for、while、repeat
数据类型
-
numeric
数值 -
character
字符 -
logical
逻辑 -
integer
整型 -
complex
复数 1+2i -
raw
原型 ("Hello”被存储为48 65 6c 6c 6f)
向量
vector(mode=’numeric’,length=3)
#0 0 0numeric(3)
#0 0 0unique(x)
==python的setdiff(c(1,3,6))
==c(-2,-3)
seq(from=2,to=10,(by=2 or length=5))
==c(2,4,6,8,10)
==1:5*2
rep(A,B)
#B一个数:把A作为整体复制B次,AB等长:对应位置复制对应次数else:errorall(x<1)
任意x<1?which(x<1)
x<1那些值的下标vectorany(x<1)
存在x<1?
str
substr(str,1,2)
返回字符串切片substring(str,1:2,3)
字符串切片向量strsplit(str,split=’’)
返回列表nchar()
gsub(A,B,str)
str里的A全部换为Bsub()
只换第一个paste(s1,s2,sep=)
连接library(stringr)
str_extract_all('abdnad','a.')
#list(c(‘ab’,’ad’))
运算
range(c(1,2,3,4))
=c(1,4)
范围which.min
最小值下标sum
累加prod()
累乘mean()
平均数sd()
标准差var()
方差sqrt()
平方根log()
常用对数exp()
自然对数sin()
三角函数(其他都有没写)factorial()
阶乘ceiling()
向上取整
排序
sort(x,decreasing = F)
#升序order(c(5,4,6),decreasing=F)
==c(2,1,3)
rank()
返回排名
数据框
tapply(data$x,factor,FUN)
apply(data,1|2,FUN)
lapply(list,FUN)
->listsapply(list,FUN)
->matrixmatrix(data=,nrow=,ncol=,byrow=F)
按列创建矩阵rownames()
nrow()
dim()
维度t()
转置%*%
矩阵乘法table()
频率rbind()
row变多,单向量看成行向量cbind()
col变多,单向量看成列向量data.frame(x=c()…,row.names=NULL,stringAsFatcor=F)
sink(file,split=F)
#命令行东西去file,命令行无内容(F)单独sink()
取消switch('a','a'=5,'b'=7)
等于switch(1,'a'=5,'b'=7)
==5Recall
#函数自身
统计学相关
choose(n,k)
Cn_kdname(x,..)
:密度函数f/ppname(x,)
分布函数p(X<=x)
qname(p,)
分位数rname(n,)
按分布取随机数bern(,n)
:伯努利01分布binom(,n,p)
二项分布geom(,p)
几何分布第k次实验成功的概率pois(,lambda#平均事件数)
泊松分布unif(,min,max)
均匀分布norm(,mean,sd)
正态分布set.seed()
设置随机种子sample(data,n,replace=F)
不返回随机抽n个replicate(n=,A)
将表达式或函数A执行n次,返回向量或矩阵cor(x1,x2)
相关性cor.test(x1,x2,method=c(pearson#正态分布,spearman#秩分布,kendall#非正态))
给出p值lm(y~x1+x2,data=)
summary()
predict(模型,自变量)
=因变量glm(y~x1+x2..,data=,family=binomial)
使用0.5切割,敏感性1真,特异性0真
tidyverse
-
install.packages(tidyverse)
dplyr数据重塑,purr函数处理,ggplot2可视化,readr文件读取 -
mutate(data,colname=val)
添加列 -
filter(data,bool)
取特定列 -
select(data,col1,col2,…)
子集 -
%>%
和|>
(R4.1.0+)为管道符 -
summarize(data,Sd=sd(),Mean=mean(),…)
-
group_by(data,factor)
-
arrange(data,rate)
按列升序变成desc(rate)
为降序 -
arrange(data,x1,x2)
按x1排序,后在x1内按x2排序 -
as_tibble()
子集还是tibble(x1=c(val)
,x2=c(v2)
…) -
case_when(x<0~’1’,x>0~’2’,T~’3’)
-
between(x,a,b)
x属于ab闭区间? -
file.copy(from,to)
将文件from复制到to(路径加文件名)文件读取
read_table()
空格分割read_csv()
、read_csv2()
分号分割read_tsv()
用tab分割read_delim()
自定义分割符
-
read_lines(file,n_max=3)
查看3行, -
library(reshape2)
melt()
宽数据变长数据cast()
长数据变宽数据
-
merge(data1,data2,…,by=c(‘保留默认相同列’))
-
melt(data,id=c(‘A’,’B’))
AB为不变的列,剩下的列当成一个性质合并为一列,列名也变成新列 -
cast(data,id~x+y)``set(id)
作为第一列的值,x和y列值的组合作为其他列的列名