mean( ) ——均值
abs( ) ——绝对值
sqrt( ) ——求平方根v
median( ) ——中位数
sd( ) ——标准差
var( ) ——方差
n( ) —— 计数
summary( ) 函数——提取模型资料
args( ) ——查看某函数的所有参数名
length( ) ——向量的长度
trunc( ) 函数——提取整数
round( ) ——四舍五入
factorial( ) ——阶乘
replicate( ) 函数——重复运行
* 将一个小数四舍五入到最近的整数
> if(max>=0.5) {a<-trunc(a)+1
}else { a<-trunc(a) }
a
// 如果小数部分max>0.5,就等于整数部分+1;否则就等于整数部分。
- dim( ) 函数——赋予向量维度属性
dim(x)<-c(2,3)
x
将向量x重新组合成两行三列的矩阵
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
- matrix( ) 函数——根据参数的数值来将向量中的元素排列成nrow行或ncol列
x<-1:6
xx<-matrix(x,nrow=2)
xx
//
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
- data.frame( ) 函数——创建数据框,每个向量之间用逗号隔开
mm<-data.frame(a=c("one","two","three"),
b=c("jan","feb","mar"),
x=c(1,2,3 ) )
mm
//
a b x
1 one jan 1
2 two feb 2
3 three mar 3
【数据处理】:
- View()函数,查看R包datasauRus的数据。
datasaurus_dozen %>% View()
- str()函数,紧凑的显示对象内部结构。查看数据框中的变量和变量类型。
str(datasaurus_dozen)
- unique()函数,返回一个把重复元素或行给删除的向量。查看数据框中dataset列有几个不同的元素。
unique(datasaurus_dozen$dataset)
- 从datasaurus_dozen数据框中,按不同dataset分组,求每个分组x和y的平均值、方差、协方差数据。
datasaurus_dozen%>%
group_by(dataset)`%>%
summarize(
mean_x=mean(x),
mena_y=mean(y),
std_dev_x=sd(x),
std_dev_y=sd(y),
corr_x_y=cor(x,y))
【索引】
[ , ] ——索引参数;第一个参数选择行,第二个参数选择列
m[2,3]
提取m向量中第2行第三列的元素
> 负整数索引——R返回的元素不包含负整数索引对应的元素
m[-1,1:3]
提取m向量中除第一行以外,1至3列的所有元素
> 空格索引
m[1, ]
提取m向量中第一行的所有元素
$ ——(数据框名称$提取的列名称)
mean(deck$value)
计算数据框deck中第value列的均值
deck2$new=NULL
删除数据框deck2中第value列
%>% 管道,阅读代码时读作“然后”
x %>% f(y) 转换为 f(x,y)
x %>% f(y) %>% g(z) 转换成 g(f(x,y),z)
【if语句】
* If( this ) { that } #在某个特定条件下执行某特定任务
* if (this ) {planA} else {planB} #如果条件为真,执行A计划,否则执行B计划
* if(this){planA}
else if(that){planB}
else{planC} #多重条件
R会逐一测试if条件,直到有一个条件的求值结果为TRUE;如果面临两个以上的互斥情况,
可以将if和else结合起来使用;如果没有一个条件为TRUE,R就会运行最后一条else语句
对应的命令。
if ( ) { print ( ) }
else if ( ) { print( ) }
else { ( ) }
【例】
m=-3
if(m<0){m<-m*-1}
如果m<0,那么m=m*-1,从而保证m为正数
【for循环】
for ( m in that) { this }
对于出现that中的每一个值,for都会运行一遍this中的代码,m为函数参数。
for ( i in vector ) { code }
i占位符
in后面为向量
{ }内是需要循环的代码
for(m in c("a","b","c")){
print("hello") }
[1] "hello"
[1] "hello"
[1] "hello"
【function函数】
function_name<-function( x1,x2,....) {code}
x1,x2...是参数, { }内是函数主体
new.function<-function(a){
for(i in 1:a){
b<-i^2
print(b)}
}
【连接】
内连接 inner_join
左连接 left_join
右连接 right_join
全连接 full_join
x%>% inner_join(y,by="key") 生成新数据框,其中包含x值和y值
left_join(x,y,by="key") 保留x中的所有观测
right_join(x,y,by="key") 保留y中的所有观测
full_join(x,y,by="key") 保留x和y中的所有观测
【分布函数】
- runif( ) ——均匀分布 runif(n,min=0,max=1)
n表示生成的随机数数量;min表示均匀分布的下限;max表示均匀分布的上限;若省略min和max,则默认生成[0,1]上的均匀分布随机数。
runif(5)
// 生成5个[0,1]上的均匀分布随机数
- rnorm( ) ——正态分布
rnorm(n,mean=0,sd=1),n为生成随机数的数量;mean是平均数,sd是方差
rnorm(100)
// 产生100个服从正态分布的随机数
rnorm(100,3,4)
// 产生100个均值为3,方差为4的随机数
- rexp( ) ——指数分布
rexp(n,rate=1)
na.omit( ) ——去掉缺失值所在行
na.rm=TRUE ——在计算前除去缺失值
is.na()函数——查看数据中的缺失值,缺失值会显示为TRUE
vec<-c(1,2,3,NA)
is.na(vec)
// FALSE FALSE FALSE TRUE
- sample( ) 函数, sample(x,size)——从向量X中抽取size个元素并返回
sample(x=1:6,size=2)
// 1 4
* 增加 replace=TRUE ——不放回抽样 ,(x,size,replace=TRUE)
sample(x=1:6,size=3,replace=TRUE)
print( ) 函数——输出成字符串
attributes( ) 函数——查看对象的属性
row.names( ) 函数——改变某个函数的取值
attr ( ) 函数——给某个对象添加任何属性,或查询某个对象包含的属性
expand.grid( ) 函数——写出n个向量元素的所有组合
die<-1:6
m<-expand.grid(die,die)
m
https://jorryyang.gitee.io/rdata/