R笔记

这篇博客详细介绍了R语言的基本操作,包括向量、矩阵、数据框的处理,如长度、维度、结构、类型、模式等属性的查询。此外,还涵盖了统计计算如均值、中位数、分位数、标准差等,以及数据清洗、排序、绘图等操作。内容包括直方图、密度图、QQ图、箱线图、散点图的绘制,以及数据分布的正态性检验、相关性分析等统计方法。此外,还涉及到了R语言在Hadoop环境下的使用以及Rhadoop包的安装和应用。
摘要由CSDN通过智能技术生成

length(x)针对向量返回长度,针对列表或者数据框返回维数

dim(x)//显示x的维度

str(x)//显示x的结构

class(x)//x的对象类型

mode(x)//对象模式

names(x)//对象中各成分的名称

head(x)//显示x的开始部分

tail(x)//显示x的最后部分

edit(x)/fix(x)//编辑x

options()//全局选项设定,如options(digits=3)将小数位数设为3

q() //退出


mean,sum中的na.rm=T参数表示移除缺失值,mean参数trim取值在0.10.5表示去除距离均值较大的异常值的比例


Sys.getenv(“HADOOP_CMD”)//获取环境

Sys.setenv(“HADOOP_CMD”=”/usr/local/hadoop/bin/hadoop”)//设置环境


安装RhadoopR或者Rstudio最好在sudosu后执行,不然总是很多问题,不要sudoR这样来做,要么R要么sudosuR


levels(x)//查看x的水平


mean(x)//求平均数


dimnames(x,list(c('a','b','c'))

list是列表,列与列之间类型可以不同,选中i列采用x=[[i]],这样就可以把那一列选中


向量中追加元素:a=c(a,10),a[length(a)+1]=10


weighted.mean(x,w...)加权平均,权值是与x长度相同的w向量


sort(x)后各数据按有序排列,order向量的元素表示排序后该下标处的元素对应原向量的哪个位置,rank向量的元素表示相应下标处原向量的元素排序后的位置。

例:a=c(55,66,57,60,62,780)

sort(a) 5557 60 62 66 780

order(a) 13 4 5 2 6 7 8 该处3表示排序后处于下标2处的元素是57

rank(a) 15 2 3 4 6 7 8该处5表示66排序后在下标5

sort()参数partial是指定排序的部分下标向量,methods指定排序方式‘shell’(默认)‘quick’index.return=T返回一个列表第一个变量是排序顺序,第二个变量是排序的值(该下标处元素在原向量中的位置,等同于order(x)),decreasing指定顺序

例:找到值在5090之间元素在原向量的下标号

order(x)[sort(x)>50&sort(x)<90] sort(x)>50返回一个逻辑向量

match(subset(x,x>50&x<90),x) which(x>50&amp;x<90)


x[order(x[,2],decreasing=T),]针对矩阵x的第二列降序排序并得到排序后的矩阵


medianx)缺省不能处理带缺失值的数据(na.rm=F),注:很多函数默认不能处理缺失值


quantile(x,c(.25,.6),na.rm=T)


偏度系数刻画数据对称性指标,若数据关于均值对称则该系数为0,右侧更分散则为正,否则为负


中心矩u


峰度系数:正态分布为0,较整体分布时尾部分散数据较多为正(两侧极端数据更多),否则为负


在给定数据均值和方差的情形下(这里仅针对正态分布),它们均返回数值向量:

dnormxmeansd)密度函数,参数指定一个数值型向量,返回拟合数据的密度函数(数值向量)

pnorm分布函数,参数指定一个数值型向量,返回拟合数据的分布函数

qnorm分位函数,参数指定概率向量,返回各个概率对应的分位数

rnorm随机函数,指定一个生成数目,返回随机数向量

有参数lower.tail=F时分布函数的计算方式和正常的反向

与此组函数相似的有:dunif,punif,qunif,runif它们指定在某个区间的正态数据


直方图:给定组距的情况下,考察数据落入各区间的频数或频率

hist(x,breaks,col)参数x是样本数据,breaks是组数(具体形式有:向量(起点,终点,组距),数值(组距),函数(组距)),col填充颜色

问:只画出样本数据中指定范围内的条形统计图?hist(x[x>2&x<10])


density(x)核密度函数,用样本数据估计密度函数 eg.plot(density(x))

问:参数bw

eg. hist(xwfreq=F)#禁用频数,否则纵坐标不在0-1之间

lines(density(w),col='red')

x=x1:x2#这里值得注意下

lines(x,dnorm(x,mean(w),sd(w)),col='blue')

注:实践中反复出现的一个问题是画密度分布函数时纵坐标要在0-1之间


ecdf(x)估计总体分布函数

eg. plot(ecdf(x),verticals=T,do.p=F)lines(x,pnorm(x,mean(x),sd(x))参数verticals表示画竖线,do.p画点与否


plot(data.frame$a~data.frame$b)==plot(~data.frame$b+data.frame$a)

plot(data.frame)==pairs(data.frame)

coplot(a~b|c)在给定因子或变量c下,作a关于b的散点图(处理多变量)

dotchart(x...)x的点图,yx的标记,x轴为x的数值

image()绘出三维图像的影响

contour(x,y,z)绘出三维图像的等值线

persp(x,y,z)绘出三维图形的表面曲线

注:z不是简单的冠以xy的运算,而是需要在函数f下作外积运算outer(x,y,f)形成网格才能绘出三维图形

高级绘图命令:

add=T表示在原图增加新元素,默认是替换原图F(增加低级绘图指令)

axes=F表示不加坐标轴,默认为T

log=’xy’表示对xy轴均取对数

type=’b’绘图类型p散点图,l实线,b所有点被实线连接,o实线通过所有点,h绘出点到

x轴的实线,s阶梯形曲线,n不绘(可以先采用n绘出一个图形边界,然后在上面绘图)

低水平作图函数:

points(x,y)加点

lines(x,y)==plot(x,y,type=’l’)加直线

text(x,y,labels)对数据集xy加文本labels(字符串,默认是1:length(x))

abline()增加直线,四种格式:ablie(a,b)/y=a+bx,abline(h=y/0)过所有点的水平直线ablien(v=0)画竖线,abline(线性拟合结果对象)

ploygon(x,y)xy为点画出多边形

在图上加文字标题或其它内容

title(main=’’,sub=’’)图上增加标题

axis(side=1/2/3/4)将坐标值置于图形的下左上右


正态性检验:QQ图帮助我们鉴别样本的分布是否近似于某种分布,若正态QQ图上的点近似在一条直线附近(该直线斜率是标准差,截距是均值),则可认为样本来自一个正态分布总体。

qqnorm(x)QQ散点图

qqline(x)画直线(斜率为标准差,截距为均值)

qqplot()

问:QQ图和PP图是什么?


stem(x,scale=2)茎叶图顾名思义是在茎的前提下有多少叶(竖线后面是相同茎的叶的分布情况),scale是控制茎规模的参数(2表示把10个个位数分为两段0-45-9),(5|0455为茎,045为叶,表示505455


boxplot(x,notch=T,,outline=T,horiz=T,add=T,col=')箱线图展示数据分布特征,参数notch?是否有切口,outline是否要异常点,horiz是否水平画,add在上幅图画

eg. boxplot(w,notch=T,add=T,horiz=T,col='red'),boxplot(x,y,col=c('red','blue'))


fivenum(x,na.rm=T)针对数据x5个分位数


shapiro.test(x)对数据x做正态检验,当返回的p值小于某个显著水平(0.05)时认为x不服从正态分布,x大小在0-5000


经验分布拟合是通过检验经验分布函数和假设的总体分布函数之间的差异

ks.test()


lm(x$x1~x$x2,data=x) lm(y~x+I(x^2))


search()列出所有包


help.search(‘key’)搜索关键字


%/%表示除法 %%表示求余

t(x)转置==aperm(A,c(2,1))

aperm(A,c(2,3,1))广义转置,2维变一维,3维到2维,1维到3

dim(x)返回一个维度向量

dimnames(x)=list(c('x','y'),c('a','b'))为各维命名 rownames(x)=c(('x','y')/colnames(x)=c()

ncol(A)/nrow(A)返回矩阵的行/列数

rbind(A,B)纵向拼接矩阵 cbind(A,B)横向拼接矩阵

as.vector(A)将矩阵化为一维向量

det()求行列式值

crossprod(x,y)內积

tcrossprod(x,y)外积x%o%y outer(x,y)

diag(x)x为向量则以它为对角线元素生成对角矩阵,若x为矩阵则将其对角化

solve(A)A的逆

solve(A,b)求解方程组Ax=b

eigen(A)求解A的特征值和特征向量,返回一个列表values表示特征值,vectors表示特征向量构成的矩阵

svd(A)奇异值分解,A=UDt(V),返回一个列表,$d奇异值D$u,$v是正交阵UV

lsfit(X,y)最小二乘拟合,X为设计矩阵,y为观测量,返回列表

qr()QR分解

apply(A,margin,fun)针对矩阵维度进行指定运算(margin=1为行,2为列)


x=list()列表,x[[1]]表示取列表第一个元素(类型与该对象一致),x[1]是取第一个元素(类型为一子列表)

x$a=1:10修改列表元素,x$a=NULL


x=data.frame()数据狂,列类型可以不同的矩阵

attach()将数据框变量连接到搜索空间 detach()取消连接

edit()修改对象


data()调用R内置数据包


which.min(x)表示在何处找到x的最小值


顺序统计量:按递增顺序排列的向量


:优先级高,1:15-1==(1:15)-1

seq()

rep(x,times)length(times)=length(x)x中每个元素重复次数是times中的元素值


x>3返回的是逻辑向量(T,F....)

all(x)判断逻辑向量x是否都为真

any(x)判断x中是否有真值 any(x>3),返回一个逻辑值

which(x>3)返回x中大于3的位置向量,返回所有满足条件的位置,第一行为满足条件的数据值,第二行为位置


is.na(x)检测缺失值,返回逻辑向量,eg. x[is.na(x)]=0将缺失值修改为0

is.nan(x)检测无限值

is.finite()/is.infinite()检测是否无穷


paste(x,date(),sep=’‘)函数可以将多个字符串向量通过分隔符sep串联起来,若两向量则对应元素组合起来,paste(x)==as.character(x)


print(x) //打印x

cat(x,y,sep=”\t”) //xy用制表符分开后输出

x=scan(what=character())//读入一个字符串到x是交互读入,读入时用一个空行结束

complex(),Re(),Im(),Mod(),Arg()关于复数的函数


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值