可不可以,帮我举一些关于html 竖线分隔符等于:[title|="red"]的例子,或者解释

Seholichan的推荐 | LOFTER(乐乎) - 记录生活,发现同好
LOFTER for ipad —— 记录生活,发现同好
Seholichan 的推荐
&nbsp&nbsp被喜欢
&nbsp&nbsp被喜欢
{list posts as post}
{if post.type==1 || post.type == 5}
{if !!post.title}${post.title|escape}{/if}
{if !!post.digest}${post.digest}{/if}
{if post.type==2}
{if post.type == 3}
{if !!post.image}
{if post.type == 4}
{if !!post.image}
{if !!photo.labels && photo.labels.length>0}
{var wrapwidth = photo.ow < 500?photo.ow:500}
{list photo.labels as labs}
{var lbtxtwidth = Math.floor(wrapwidth*(labs.ort==1?labs.x:(100-labs.x))/100)-62}
{if lbtxtwidth>12}
{if !!labs.icon}
{list photos as photo}
{if photo_index==0}{break}{/if}
品牌${make||'-'}
型号${model||'-'}
焦距${focalLength||'-'}
光圈${apertureValue||'-'}
快门速度${exposureTime||'-'}
ISO${isoSpeedRatings||'-'}
曝光补偿${exposureBiasValue||'-'}
镜头${lens||'-'}
{if data.msgRank == 1}{/if}
{if data.askSetting == 1}{/if}
{if defined('posts')&&posts.length>0}
{list posts as post}
{if post_index < 3}
{if post.type == 1 || post.type == 5}
{if !!post.title}${post.title|escape}{/if}
{if !!post.digest}${post.digest}{/if}
{if post.type == 2}
{if post.type == 3}
{if post.type == 4}
{if drlist.length>0}
更多相似达人:
{list drlist as dr}{if drlist.length === 3 && dr_index === 0}、{/if}{if drlist.length === 3 && dr_index === 1}、{/if}{if drlist.length === 2 && dr_index === 0}、{/if}{/list}
暂无相似达人,
{if defined('posts')&&posts.length>0}
{list posts as post}
{if post.type == 2}
{if post.type == 3}
{if post.type == 4}
this.p={ dwrMethod:'querySharePosts', fpost:'',userId:,blogListLength:25};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.1~0.5表示去除距离均值较大的异常值的比例
Sys.getenv(“HADOOP_CMD”)//获取环境
Sys.setenv(“HADOOP_CMD”=”/usr/local/hadoop/bin/hadoop”)//设置环境
安装Rhadoop时R或者Rstudio最好在sudosu后执行,不然总是很多问题,不要sudoR这样来做,要么R要么sudosu后R
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)
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指定顺序
例:找到值在50和90之间元素在原向量的下标号
order(x)[sort(x)&50&sort(x)&90] sort(x)&50返回一个逻辑向量
match(subset(x,x&50&x&90),x) which(x&50&x&90)
x[order(x[,2],decreasing=T),]针对矩阵x的第二列降序排序并得到排序后的矩阵
median(x)缺省不能处理带缺失值的数据(na.rm=F),注:很多函数默认不能处理缺失值
quantile(x,c(.25,.6),na.rm=T)
偏度系数刻画数据对称性指标,若数据关于均值对称则该系数为0,右侧更分散则为正,否则为负
峰度系数:正态分布为0,较整体分布时尾部分散数据较多为正(两侧极端数据更多),否则为负
在给定数据均值和方差的情形下(这里仅针对正态分布),它们均返回数值向量:
dnorm(x,mean,sd)密度函数,参数指定一个数值型向量,返回拟合数据的密度函数(数值向量)
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的点图,y轴x的标记,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)画直线(斜率为标准差,截距为均值)
问:QQ图和PP图是什么?
stem(x,scale=2)茎叶图顾名思义是在茎的前提下有多少叶(竖线后面是相同茎的叶的分布情况),scale是控制茎规模的参数(2表示把10个个位数分为两段0-4,5-9),(5|045里5为茎,045为叶,表示50,54,55)
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)针对数据x求5个分位数
shapiro.test(x)对数据x做正态检验,当返回的p值小于某个显著水平(0.05)时认为x不服从正态分布,x大小在0-5000
经验分布拟合是通过检验经验分布函数和假设的总体分布函数之间的差异
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
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”) //将x和y用制表符分开后输出
x=scan(what=character())//读入一个字符串到x,是交互读入,读入时用一个空行结束
complex(),Re(),Im(),Mod(),Arg()关于复数的函数
下标的负整数运算表示扣除相应的元素
names(x)=c()为向量元素增加名字
增加对象长度采用赋值运算方式,缩短对象采用对象子集赋值 x=c(x,1:3)
attr(x,name)存取对象x的name属性 attr(x,name)=c(‘a’,’b’)修改name
attributes(x)返回对象各属性列表
str(x)//返回x的结构
序列的处理:
table(x)对于因子向量统计频数,返回一个带名称的向量,名称为因子,值为频数
unique(x[,1])获取x列1中的唯一元素
index=duplicated(x$V1)找出特定对象或列中重复元素(多个保留一个),返回一个逻辑向量其中真值表示重复的元素x[!index]提取唯一的元素duplicated(x)
rle(x)将x中连续出现的值用一个代替且返回连续出现的次数,返回一个列表values是元素,
lengths是连续重复元素重复的次数,没有连续重复的则为1
eg. any(rle(x)$values&2&rle(x)$lengths&3)找出x中连续三个以上相同数字大于2
cumsum(x)将x的每个元素累加,返回一个与x相同长度的向量
eg.cumsum(x)[3]累加到3号元素是多少
eg.cumsum(rle(x)$lengths)[which(rle(x)$values==2&rle(x)$lengths&=3)]找到值为2连续次数大于3的终止位置
cumprod()cummax() cummin()
factor()因子
gl(n,k)产生1:n每个重复k次的因子
apply(x,margin=1,mean)的margin参数1,2表示行或列,但是数据有具体列或者行的名称时可以使用
tapply(x,index,fun)根据index求分组的函数值,index是与x相同长度的因子
eg. x=list(a=c(),b=c('f','m','f'...)) tapply(x$a,x$b,mean)
aggregate(x$V1,list(x$V1,x$V2),length) //针对x的列&V1,V2&构成分组每个分组出现的次数,by的变量必须在list中,可以在列表中为各组声明自定义名称如by=list(Group.V1=name1,Group.V2=name2)
array(data,dim)通过dim构造多维数组array(1:10,c(2,3,4)),数组下标从1开始
matrix()构造矩阵
访问数组某个元素在方括号内写上维数,省略某维则该维全选 x[2,3:5,]
多元数据特征和相关性分析:
多元数据采用数据框格式输入
cor(data.frame),返回方差或矩阵cov(data.frame)返回相关系数或矩阵
cor.test()根据样本对总体多元变量相关性假设检验
显著性水平a是否决(在置信区间外的概率),置信水平1-a是参数估计落入置信区间的概率,参数估计总的来说就是给定一个显著性水平计算待估计参数以置信水平落入的那个范围
多元性数据R中采用数据框输入,采用cor.test两两相关性检验
t.test是对两组数据的均值检验,cor.test对两组数据的相关性检验
t.test做得是均值检验,因为你的两个向量的均值一样,所以,p-value很大,无法拒绝。 cor.test是用来做相关性检验的, 你的两个向量相关性很大,所以p-value很小,认为两者有很强的相关性?。原假设 xy 相关 ,P-VALUE 应该是x,y相关的概率值,p值小(低于显著性水平)认为相关,否则不相关
多变量先做相关性分析然后做加权平均
stars(x)画星形图,x可以为数据框
轮廓图(相似轮廓一类)和调和曲线图(降维)(一类线扭在一起)对于聚类有帮助
参数估计:根据样本估计总体分布的未知参数(知道总体分布的类型)
点估计:用一个统计量估计一个未知参数(不能反映可信程度,但能给出参数大致多少)
区间估计:两个统计量构成的区间估计一个未知参数(置信区间,置信度,不能说明未知参数具体是多少)p{a&theta&b}=1-a,1-a为置信度,(a,b)为置信区间,a为显著性水平
矩法估计:令样本矩等于总体矩,解方程可以得到未知参数(未知参数个数等于方程个数等于矩的最高次方)(充分利用样本的矩是可以计算的条件)
极大似然估计:不同的参数使得总体落入样本值邻域的概率不同,取那个最大概率对应的参数值为估计值。
当似然函数连续时:建立似然函数方程(概率密度函数联乘)对数化,各未知参数求一阶偏导的方程为0构成方程数与参数个数相同的方程组,求解该方程组得到参数值。验证似然函数二阶导数小于0解方为最大似然估计值。注:当方程的二阶黑塞矩阵负定(&0)时方程解才是最大似然估计。当参数空间(未知参数可能的取值范围)为开区域时最大似然估计不适合。
当似然函数有间断点时:需从极大似然估计的定义出发(似然函数取得最大值)
当参数空间离散时:为取似然函数的极大值,采用似然函数的比值求极大值对应的参数估计值
当无法求得似然函数的解析式时:采用数值方法
点估计的衡量方法:无偏估计,相合性,有效性
uniroot(f,interval=c(0,10))求根函数,参数interval为区间范围
optimize(f,interval=c(0,10),maximum=F)求得函数f在给定区间interval下的极小(大)值
注:貌似这两个函数都只能返回多个极值点的一个?
table(x,cut(x,br=c(0,10,30))将x分为各区间并进行统计计数
chisq.test(x,p)关于x的概率p(按照某种假设分布得到的概率)检验,若p值小于显著性水平则拒绝该假设分布,还可以检验多样本(列联表转换为矩阵形式chisq.test(matrix))
pearson卡方检验要求数据分组后每组频数至少大于等于5
ks.test(x,’pexp’,0.01)进行指数分布检验,原假设为独立
fisher.test(matrix)解决卡方检验分组频数不能小于5的精确检验,原假设为无关
binom.test(x,n)检验n次实验中发生x次的概率eg.binom(sum(x&y),length(x))检验x与y是否有显著性差异
method(x,y,methods=’sperman’)检验x与y是否相关(原假设独立)
马氏距离:?
rm(list=ls())删除所有内存对象
help(package='ROBC')查看包的信息(包括函数名)
sudostart mysql
mysql -uroot -p
library(DBI library(RMySQL)
con=dbConnect(MySQL(),user='root',password='123',dbname='cmcc',host='localhost')
dbGetQuery(con,'sql')
dbWriteTable(con,'name',data)
取子矩阵的几种方式
1) 连续取z[,2:3]:取z矩阵2、3两列
2) 跳跃取z[c(1,3),]:取z矩阵1、3两行
3) 剔除取z[-2,]:剔除z矩阵第2行
如果只是想知道函数有哪些参数,顺序是怎样安排的,就可以用args函数
用example函数就能看到例子的运行结果example(mean)
执行help.start函数可以看到文档的目录:
在网络上搜索跟R有关的信息和问题解答。解决方案\在R中,可以用RSiteSearch函数搜索关键字或短语:&RSiteSearch(&key phrase&)
scan(filename,what=c(f1=0,NULL,f3='',rep(list(NULL),6),f10=0)跳过指定的列
x=read.fwf('1.txt',widths=c(1,-4,3),as.is=T)没有分隔符的文件跳过2到6列,读取1,7,8,9列,as.is=T表示不转换为因子
readLines('1.csv',n=10)读取文件的10行
gsub()移除逗号
count.fields('1.csv',sep=',')计算每行的字段,最后也可以计算行数wc
用read.table函数,该函数会返回一个数据框(dataframe):
&dfrm &- read.table(&filename.txt&)
colClasses
You can read in just a few rows of the table andthen create a vector of classes from just the few rows. For example,if I have a file called &datatable.txt&, I can read in thefirst 5 rows and determine the column classes from that:
tab5rows &- read.table(&datatable.txt&, header = TRUE, nrows = 5)
classes &- sapply(tab5rows, class)
tabAll &-read.table(&datatable.txt&, header = TRUE, colClasses =classes)
y=read.table('1.csv',colClasses=c('factor','NULL',NA,rep(list('NULL'),10)))
comment.char
If yourfile has no comments in it (e.g. lines starting with '#'), thensetting 'comment.char = &&' will sometimes make'read.table()' run faster.
appropos('mean')获取类的所有可用方法
strsplit(x,'jx')将字符串x从jx处截断(含有jj的都从中断开)
sample(x,replace=F,prob)抽样函数x为一向量则为其元素的随机排列,若x为一个数字则返回一个从x开始长度为x的随机向量,prob为抽样概率向量
intersect()求交集
回归分析:自变量与因变量的关系不能明确,通过大量样本数据寻找它们的关系
主要问题:回归方程,预测和控制,检验(回归方程、自变量对因变量的影响)
根据数据的位置从数据框中选取出若干列。
解决方案\选择一列数据的操作如下:dfrm[[n]]
要从数据框中选择多列数据并将其包装成新的数据框,用下面的的表达式:dfrm[n]
这会返回一个仅仅由dfrm的第n列数据构成的数据框。
dfrm[c(n1, n2,……,nk)]这会返回由dfrm的n1、n2、……、nk列构成的数据框。还可以用矩阵下标风格的方式选择一列或多列数据:dfrm[,n]返回的是第n列(假设n只含有一个数值)。dfrm[,c(n1, n2, ..., nk)]返回的是由n1, n2,…, nk列构成的数据框
tapply(x,index,FUN)针对一个变量x按照特定水平index执行FUN(按照水平分组后对分组执行FUN)即按照index的水平对x进行分组然后对每组FUN,x和index长度一样
sapply(),lapply()针对对象执行指定的统计函数,后者返回一个和对象相同的类型sapply(x,FUN, options),sapply和lappy可以针对多个变量,区别是sapply返回向量,lapply返回列表
is.factor(x)//判断是否为因子
round(x)取整
fivenum()returns Tukey’s five-number summary (minimum, lower-hinge, median,upper-hinge,and maximum).
aggregate()only allows you to use single value functions such as
mean,standard deviation, and the like in each call。Forthat task, you can use the by() function. The format is by(data,INDICES, FUN) where data is a data frame or matrix, INDICES is afactor or list of factors that define the groups, and FUN is anarbitrary function.
summaryBy(formula,data=dataframe, FUN=function) where the formula takes the form var1 +var2 + var3 + ... + varN ~ groupvar1 + groupvar2 + … + groupvarNVariables on the left of the ~ are the numeric variables to beanalyzed and variables on the right are categorical groupingvariables. The function can be any built-in or usercreated Rfunction.
Thedescribe.by() function contained in the psych package provides thesame descriptive statistics as describe, stratified by one or moregrouping variables
help(package='name')查看包的信息
x%in%y匹配,返回一个逻辑向量,x中匹配y的则为T,否则为F
ifelse(test,yes, no)test为真则返回yes,否则返回no
地理绘图:
library(maptools);
x=readShapePoly('bou2_4p.shp');
plot(x,col=gray(924:0/924));
plot命令中的col参数在本例中应该是一个长度为925的向量,其第i个分量的取值就代表了地图中第i个多边形的颜色
xaxt='n'去掉默认的x轴坐标,yaxt='n'
barplot(x)画柱状图时,将x的名字改为其他想要的类型,则横坐标为想要的类型,names(x)=...,每个柱状图的名字更改为names.arg=names
summary(x)获取描述性统计量
describe(x)位于Hmisc包(psych包中也有)中,可以返回缺失值、唯一值等统计量
stat.desc(x)位于pastecs包中,返回众多统计量
step()逐步回归(去掉回归方程中不重要的变量),采用去掉变量后降低AIC值作为标准,使得显著性水平提高
add1()增加变量
drop1()查看AIC值减小或者增加的最少并且残差平方和上升最小的变量可以去掉
回归诊断:模型是否合适、是否存在异常样本、稳定性、自变量之间共线性问题、误差项
residuals(lm.obj)计算残差
rstandard(lm.obj)计算标准化残差
update()模型修正函数
coef(lm.obj)提取回归参数
plot(model,2)画正态QQ图,model为lm对象
diffts(lm.obj)cooks.distance(lm.obj)异常值检测
covratio(lm.obj)样本对应的COV值离1越远,则该样本影响越大(可能为异常值)
influence.measures(lm.obj)回归诊断的总括
kappa(x)计算矩阵x的条件数(最大特征值和最小特征值的比值),一般大于100小于1000认为x的列间具有较强共线性
kappa(lm.obj)求自变量和因变量组成的矩阵的条件数
ploy(x,degree)将x转换为正交多项式,degree为多项式的阶数小于length(x)
preditct(lm.obj,x)线性模型下x的预测值
nls() nlm()求解非线性模型
attr(x,which,value)将x的属性which更改为value
x%*%x计算t(x)x xt(x)用x%o%x
方差分析:研究一种或多种因素的变化对实验结果的观测值是否有显著影响
scale(x,center,scale)对x进行转换,center为T时为中心转化,scale为T时是标准转换数据对象x按列进行中心化或标准化
sweep()极差标准转换,极差是指总体各单位的标志值中,最大标志值与最小标志值之差
cor(x)计算相关矩阵
plot(x,y,col='red',log='x',cex=.5,xaxt='n')//将横坐标取对数,横坐标刻度去掉
axis(1,at=c(1,10,100,),labels=c(expression(10^&0&),expression(10^&1&),expression(10^&2&),expression(10^&3&),expression(10^&4&)))//添加指数刻度到横坐标
install.packages('devEMF')
library(devEMF)
require(devEMF)
dev.off()//将图形保存为emf格式
R安装包的方式:假设包在/home/lxj/Downloads下,先cd/home/lxj/Downloads然后R CMD INSTALLpackage//安装包package也可以直接RCMD INSTALL /home/lxj/Downloads/package
或者在R里面安装install.packages(“path/to/yourPackageName”,repos=NULL)
image(x)色图,实际数据大小用不同色彩表示
filled.contour(x,y,z)等高线之间的区域是彩色的,并且绘制彩色对应的值的图例
系统聚类要求一次形成类后就不能改变(hclust),动态聚类开始初略分类然后按照某种最有准则修改不合理的分类(kmeans)。
km &-kmeans(scale(X), 5, nstart = 15);
#绘出分类结果图,并标出聚类中心 plot(scale(X),col=km$cluster);points(km$centers,col=1:5,pch=8,cex=5)
centers参数用来设置分类个数(可以先由谱系图确定分类个数),nstart参数用来设置取随机初始中心的次数,其默认值为1,但取较多的次数可以改善聚类效果。Km$cluster可以用来提取每个样本所属的类别。
sort(km$cluster)对分类进行排序
#查看聚类结果
km$size#查看聚类结果统计信息,每一类的个数
km[km$cluster==3]#查看第三类结果
问题1:这个百分数含义就是聚类之间的距离差平方与总体距离差平方之间的占比,一般来说越大表示聚类之间的距离越大,也就是说聚类的效果越好. 问题2:这部分包括聚类的结果:cluster是一个整数向量,表示每一个点所分配的聚类, centers表示一个矩阵包含每个聚类的各个部分中心值. totss表示各个整体的距离差平方和 &withinss&表示各个聚类内部的距离差平方和 “tot.withinss&表示所有聚类内部距离差的平方和的总合 &betweenss&表示聚类之间的距离差的平方总合 &size&每个聚类的大小
当nstart越大时,随机选3个样本点的组合越多,得到最优聚类结果的可能性越大。得到不同聚类结果的可能性越小。 同时运算量也大大的增加了。所以nstart值只能尝试着增加,增加到多次执行结果一致 Kmeans函数的聚类最优标准: Kmeans函数的聚类最优标准是 km$tot.withinss(所有聚类内部距离差的平方和的总和)的值越小越优, 但一般看(between_SS/ total_SS =87.9 %)就行,这个百分数越大就越优(但不一定合理)。
当矩阵数据特别大时,查看某类中的数据是非常困难的,which(km$cluster==3)查看3类中的数据出现在原矩阵的哪些行
hclust()就是R的分层聚类分析函数,再使用plot(hclust对象,hang)画出系统聚类的树形图,hang取负数谱系图的类从底部画起。
as.dendrogram(object)将系统聚类对象强制为谱系图
plot(object,type=c('rectangle','triangle'),center=F,horiz=F)type是类型矩形是默认值,horiz是否水平放置
data=iris[,-5]
distdist.e=dist(data,method='euclidean')//
heatmap(as.matrix(dist.e),labRow=F,labCol=F)//热图
model1=hclust(dist.e,method='ward')//wardard参数是将类间距离计算方法设置为离差平方和法。使用plot(model1)可以绘制出聚类树图。如果我们希望将类别设为3类,可以使用cutree函数提取每个样本所属的类别。
result=cutree(model1,k=3)//如果我们希望将类别设为3类,可以使用cutree函数提取每个样本所属的类别
mds=cmdscale(dist.e,k=2,eig=T)//先将数据用MDS进行降维,然后以不同的的形状表示原本的分类,用不同的颜色来表示聚类的结果,cmdscale多维缩放,取前2个主坐标,eig指示是否应该返回的特征值。根据各点的欧氏距离,在低维空间中寻找各点座标,而尽量保持距离不变。已知距离应该也能得到这些点之间的关系,MDS就是在尽量保持这种高维度“距离”的同时,将数据在低维度上展现出来。
x=mds$points[,1]
y=mds$points[,2]
library(ggplot2)
p=ggplot(data.frame(x,y),aes(x,y))//aes图像上点的属性
p+geom_point(size=3,alpha=0.8,
aes(colour=factor(result),
shape=iris$Species))//geom决定了图像的“type”,即几何特征,是用点来描述图像,还是用柱
类个数的确定:
给定一个类与类之间的距离阈值观察谱系图
观察样本的散点图
使用统计量
谱系图分析准则:
各类重心的聚类必须很大
各类包含的元素不要太多
类的个数符合实际意义
采用几种不同的聚类方法,求交集类
rect.hclust(object,k=NULL,which=NULL,x=NULL,h=NULL,border=2,cluster=NULL)确定类的个数,给定类的个数或阈值确定聚类情况。其中object是hclust对象,k是聚类个数,h是谱系图中的阈值,各类距离大于h,border是数或向量标明矩形框的颜色。在已分类的图上重新定位分类区域。
plclust(object,hang=0.1)和plot一样是另一种画谱系图的函数,参数和plot差不多
as.dist()的作用是将普通矩阵转化为聚类分析用的距离结构,即把对角线和对角线上面的值去掉,例如某些相关系数矩阵对角线上是变量自己对自己为1,且是个对称阵。
主成分分析:通过降维技术把多个变量化为少数几个主成分--能够反应原始变量绝大部分信息通常是原始变量的线性组合
对于协方差矩阵A,存在正交阵Q使得t(Q)AQ为对角阵,且对角元素降序排列则相应的对角线元素为主成分。主成分分析将原始变量的总方差分解成了一组不相关变量的方差之和。成分的贡献率大则选入主成分。选取的主成分的贡献率之和达到80%以上。为了使主成分能够均等的对待每个原始变量常常将原始变量做标准化处理。如果将数据进行标准化,则计算所得的协方差矩阵即等于相关矩阵。
princomp(formula,data=NULL,subset,na.action,...)主成分分析函数,formula是没有响应变量的公式,
princomp(x,cor=T)其中x是主成分分析数据,cor表示用样本的相关矩阵R作主成分分析//prcomp()==princomp()
summary(object,loadings=T,covmat=NULL)提取主成分信息,object是princomp()对象,loadings显示loadings内容,covmat是协方差矩阵若数据不由x提供可由协方差矩阵提供。
loadings(object)显示主成分分析或因子分析中的载荷(主成分向量由原始变量线性组合的系数)
predict(object,newdata)预测主成分的值,newdata为由预测值构成的数据框当其为默认值时预测已有数据的主成分值。主成分值的观察需要结合载荷系数来确定主成分大小表示什么意思
screeplot(object,npcs,type=c('barplot','lines'))画出主成分碎石图,npcs为画出的主成分个数,type是碎石图的类型(Ascree plot shows the sorted eigenvalues, from large to small, as afunction of the eigenvalue index.)方差变化大说明成分代表性越高。
biplot(object,choices=1:2)画出数据关于主成分的散点图和原坐标在主成分下的方向,choices是选择主成分的个数默认是第一第二主成分。
主成分分析的应用:变量分类、主成分回归问题。
变量分类实例:
pr&-princomp(covmat=R);load&-loadings(pr)
plot(load[,1:2]);text(load[,1], load[,2], adj=c(-0.4,0.3))//原来的变量顺序号打在了现在的图上,根据聚团现象将变量分类。
自变量多重共线性采用主成分回归
因子分析:分析隐藏在便面现象后面的因子作用,研究相关阵和协方差阵内部的依赖关系,将多个变量综合为少数几个因子,以再现原始变量与因子之间的相关关系。主要应用两个方面:寻求基本结构简化观测系统,将错综复杂的对象(变量和样本)综合为少数基本因子;用于分类。R型因子分析研究变变量之间的相关关系,通过对变量的相关阵或协方差阵内部结构的研究找出控制所有变量的几个公共因子。Q型是分析样本之间的相关关系,通过对样本的相似矩阵内部结构的研究找出控制样本的几个主要因子。因子分析中的载荷是原始变量与公共因子的相关系数,所以载荷也可以表示为原始变量与公共因子线性相关的程度。
典型相关分析:分析两组随机变量之间的相互线性依赖关系。
cancor(x,y,xcenter=T,ycenter=T)其中x,y是数据123矩阵,xcenter,ycenter表示将数据中心化
模拟:把现实或抽象系统的部分状态或特征用另一个系统来替代或模仿。在模型上作实验成为模拟实验。
蒙特卡洛方法是将各种随机事件的概率特征与随机事件的模拟联系起来,用实验的方法确定事件的相应概率与数学期望。解是由实验得到的。一般过程:构造问题的概率模型,从已知概率分布中抽样,建立所需的统计量(无偏估计)
若累积分布函数F是连续的严格增函数,则存在其。累积分布函数的反函数可以用来生成服从该的随机变数。设若FX(x)是分布X的累积分布函数,并存在反函数。若a是[0,1)区间上均匀分布的随机变数,则服从X分布。
显著性水平a是否决(在置信区间外的概率),置信水平1-a是参数估计落入置信区间的概率,参数估计总的来说就是给定一个显著性水平计算待估计参数以置信水平落入的那个范围
相关性:衡量两个变量线性相关程度,0代表完全不相关
相关性和独立的简单区别y=x^2显然x与y不相关(平方关系和线性关系相差甚远),但是并不代表他们独立。
pearson相关是测量两变量相关程度的分析,而t检验是检测样本来自的总体是否和样本存在一致的现象,通过得到的t值或对应的概率值p得出最终结论
t.test是对两组数据的均值检验,cor.test对两组数据的相关性检验
协方差是反映的变量之间的二阶统计特性,如果随机向量的不同分量之间的相关性很小,则所得的协方差矩阵几乎是一个对角矩阵。对于一些特殊的应用场合,为了使随机向量的长度较小,可以采用主成分分析的方法,使变换之后的变量的协方差矩阵完全是一个对角矩阵,之后就可以舍弃一些能量较小的分量了(对角线上的元素反映的是方差,也就是交流能量)。
旋转矩阵(Rotationmatrix)是在一个的时候有改变向量的方向但不改变大小的效果的。旋转矩阵是,一个矩阵是旋转矩阵,当且仅当它是并且它的是单位一
varimax()函数可以完成因子载荷矩阵的旋转变换
head(x,n)/tail(x,n)返回数据向量x的前(后)n个//默认6行
RSiteSearch(‘neuralnetwork’)//用于搜索邮件列表文档R手册R帮助页面
help.start()//启动浏览器显示html帮助页面
old.packages(‘ggplot2’)//查看CRAN上是否有已安装包的更新版本
update.packages()//更新所有已安装的包
数据分布的偏度和分散情况:
hist(x,prob=T)//直方图纵坐标为频率
rug(jitter(x),side=2)/在y轴附近绘制x的实际值用于观测离群点
qqplot()//绘制qq图检验变量是否为正态分布,虚线是正态分布95%置信区间带状图,散点位于 带状内且近似直线则是正态分布
离散值的观测:
abline(h=mean(x)+sd(x))//添加一个均值+标准差的水平线
identify(x)//数据交互,鼠标点击图上的点显出数据的位置
bwplot(y~x)//lattice包中为条件箱线图(对y的每个值绘制x横坐标值),Hmisc中为分位箱线图(点为均值,竖线表示第一、中、第三分位数)通过分位数体现数据分布信息
equal.count(x,number=4,overlap=0.2)//将连续变量x离散化number为需要的区间个数overlap设置两个区间之间的靠近边界的重合部分点分到两个区间
stripplot(y~x|z)//位于lattice包根据y的值把变量x的实际值绘制到不同的图形中然后对z的不同区间绘制图形这些区间按照从左到右从下到上的顺序排列
数据缺失:
剔除、变量间相关关系填补缺失值、相似性填补
complete.cases(x)//返回一个和x的行数相同长度的bool向量若x某行含有缺失值则此处为F
na.omit(x)//剔除x的缺失值
apply(x,1,function(x)sum(is.na(x)))//返回x每行缺失值的个数
通过变量的相关关系填补缺失值,首先分析变量的相关关系cor(x,use=’complete.obs)产生变量之间的相关值矩阵complete.obs忽略含有缺失NA的记录相关值在+-1附近表示两个变量有强正负线性关系,symnum(cor(x))改善结果的输出形式然后通过其他形式得到变量间线性相关的近似函数形式填补缺失值
可以通过行之间的相似性填补缺失值,相似性度量可以是欧氏距离
预测模型:
多元线性回归lm(),回归树rpart(),prettyTree()画出树,rpart会自动生成树的一些子树并估计这些子树的性能用printcp()可以获得这些信息,prune()修剪树,snip.rpart()交互的修剪树
模型评价:
预测性能、效率
regr.eval()计算线性回归模型的性能度量指标
基本概念:数据data和映射标度几何对象统计变换坐标系统图层分面facet 图层(Layer):如果你用过photoshop,那么对于图层一定不会陌生。一个图层好比是一张玻璃纸,包含有各种图形元素,你可以分别建立图层然后叠放在一起,组合成图形的最终效果。图层可以允许用户一步步的构建图形,方便单独对图层进行修改、增加统计量、甚至改动数据。
标度(Scale):标度是一种函数,它控制了数学空间到图形元素空间的映射。一组连续数据可以映射到X轴坐标,也可以映射到一组连续的渐变色彩。一组分类数据可以映射成为不同的形状,也可以映射成为不同的大小。
坐标系统(Coordinate):坐标系统控制了图形的坐标轴并影响所有图形元素,最常用的是直角坐标轴,坐标轴可以进行变换以满足不同的需要,如对数坐标。其它可选的还有极坐标轴。
位面(Facet):很多时候需要将数据按某种方法分组,分别进行绘图。位面就是控制分组绘图的方法和排列形式。不同组之间数据很难区分时用分面
qplot(x,y,data,colour,shape)//data数据框中的变量xy散点图,colour增加颜色信息,shape增加形状信息,alpha在0-1(完全不透明)范围内表示图形的透明程度,colour=I('red)表示手动设定图形属性
通常把不同的图层中共用的映射提供给ggplot函数,而某一几何对象才需要的映射参数提供给geom_xxx函数。
geom几何对象参数,'point'散点图,smooth拟合一条平滑曲线,boxplot箱线图,path、line数据点之间绘制连线,histogram直方图,freqploy频率多边形,density密度曲线,bar条形图。可以用c()函数将多个几何对象组合成一个向量传给geom几何对象按照指定顺序进行堆叠。smooth时灰色部分是逐点的置信区间宽度,可以使用se=F去掉。曲线的平滑程度是span控制的0-1(很不平滑)。method参数可以选择平滑器,默认已经很好。fitter扰动图(扰动图和箱线图对于连续变量如何随着分类变量水平变化而变化)//geom表示几何对象,它是ggplot中重要的图层控制对象,因为它负责图形渲染的类型,每个geom对象都需要有数据输入,数据可以从第一层中自动读取,也可以在aes参数中直接设置。而且每个geom还默认搭配某种统计变换(stat),geom_histogram的默认统计变换是stat_bin。它负责对数据进行分组计数
//散点图和平滑曲线
p &- (=mpg,aes(x=displ,y=hwy,colour=(cyl)))
p + geom_point() + geom_smooth(se=T)
//然后用ggplot定义第一层必须是数据来源data(数据框格式),其中aes(aes参数控制了对哪些变量进行图形映射,以及映射方式)参数非常关键,它将displ映射到X轴,将hwy映射到Y轴,将cyl变为分类数据后映射为不同的颜色,,然后使用+号添加了两个新的图层,第二层是加上了散点geom_point,第三层是加上了loess平滑曲线geom_smooth。可将colour参数设置在散点图层内而非第一层,这样第三层的平滑图形就不会受到colour参数的影响geom_point(colour=factor(cyl))。
//ggplot里的参数,相当于全局变量,geom_point()和stat_smooth()都知道x,y的映射,如果只提供给geom_point(),则相当于是局部变量,geom_point知道这种映射,而stat_smooth不知道,当然你再给stat_smooth也提供x,y的映射,不过共用的映射,还是提供给ggplot好。
//直方图和密度曲线
p &- ggplot(mpg,aes(hwy))
p + geom_histogram(position = 'identity', alpha=0.5,aes(y =
..density..,fill = factor(year))) +stat_density(geom =
'line',position = 'identity', aes(colour = factor(year)))
// alpha透明参数,aes y轴映射为频率,fill填充色为year,对year映射密度曲线,绘制密度曲线,geom为几何类型,position是覆盖点的位置,数据源可以由aes指定
//首先将数据按照year这个变量划分为两组,用不同的颜色绘制直方图,而且用频率而非计数来刻画Y轴,并添加密度曲线。
//位置调整
with(mpg,table(class,year))
//直接操作数据框,等价于table(mpg$class,mpg$year)多维频率统计
p &- ggplot(data=mpg,aes(x=class,fill=factor(year)))
p + geom_bar(position='dodge')
p + geom_bar(position='stack')
p + geom_bar(position='fill')
p + geom_bar(position='identity',alpha=0.3)
//geom_bar是绘制条状几何对象,dodge方式是将不同年份的数据并列放置;stack方式是将不同年份数据堆叠放置,这也是geom_bar的默认处理方式;fill方式和stack类似,但Y轴不再是计数,而是以百分比显示;identity方式是不做任何改变直接显示出来,所以需要设置透明度才能看得清楚。
//上面的等价于:ggplot(mpg)+geom_bar(aes(x=class,fill=factor(year)),position='dodge')
ggplot()+geom_bar(aes(x=c(LETTERS[1:3]),y=1:3),stat=&identity&)
//直方图把连续型的数据按照一个个等长的分区(bin)来切分,然后计数,画柱状图。而柱状图是分类数据,按类别计数//限制坐标轴范围
y=c(1.1,1.8,2.5,3.6,3.1,2.7,1.9,-0.1,-3.5,3.0)
data=data.frame(x,y)
p=ggplot(data,aes(x,y,fill=y))//填充色以y
p+geom_bar(stat=&identity&)+
geom_abline(intercept = 0, slope =0,size=1,colour='gray')+//添加直线x=0
geom_text(aes(label=y),hjust=0.5, vjust=-0.5)+//添加文字说明
scale_y_continuous(limits=c(-3.8,4.2))+//??????
labs(x='年份',y='GDP增长率%')+//xlab,ylab
opts(title = &美国GDP增长率&)//main
p&- ggplot(mpg, aes(cty, hwy))
p1&- p + geom_point(aes(colour = factor(year),shape = factor(year),size = mpg$displ), alpha = 0.6, position = 'jitter')//颜色,形状,大小,透明度,位置jitter???
print(p1)//画出p1
//坐标轴控制
cty.mean=with(mpg,mean(cty))//均值相当于mean(mpg$cty)
cty.sd=with(mpg,sd(cty))//计算标准差
p1+scale_x_continuous(trans='log',breaks=c(cty.mean-cty.sd,cty.mean,cty.mean+cty.sd),
labels=c(&high&, &mean&,&low&))+ scale_y_continuous(trans='log')
//对X轴和Y轴均进行对数变换,然后对X轴的坐标显示加以限制----只显示X轴数据的均值,以及一倍标准差的坐标。
//添加文字说明
p&- ggplot(mtcars, aes(x=wt,y=mpg,colour=factor(cyl),label=rownames(mtcars)))
p+ geom_text(hjust=0,vjust=-1,alpha=0.8)+geom_point(size=3,aes(shape=factor(cyl)))
//矩阵散点图
plotmatrix()+geom_smooth()//展示了矩阵两两列变量间的关系
//对角线的图是变量的密度估计,比如左上角第一个就是murder这个变量的密度估计曲线。
ggplot(x)+geom_density(aes(x= x$x1,colour =x$x2,
fill=x$x1))//geom_density画密度函数图,fill向曲线下方填充颜色
geom_abline eom_area geom_bar geom_bin2d
geom_blank geom_boxplotgeom_contour geom_crossbar
geom_density geom_density2d geom_dotplotgeom_errorbar
geom_errorbarh geom_freqpoly geom_hex geom_histogram
geom_hline geom_jitter geom_line geom_linerange geom_map
geom_pathgeom_point geom_pointrange geom_polygon
geom_quantile geom_raster geom_rect geom_ribbon geom_rug
geom_segment geom_smooth geom_stepgeom_text geom_tile
geom_violin geom_vline
library(ggplot2)
//数据来源
p=ggplot(data=x,mapping=aes(x=x$x1,y=x$y1,colour=factor(x$z),size=displ)
p+geom_point(aes=factor(x$z),alpha=.5,position='jitter')+stat_smooth() +scale_color_manual(values=c('red','blue'))+scale_size_continuous(range=c(4,10)) +coord_cartesian(xlim= c(15, 25),ylim=c(15,40))+facet_wrap(~ year, ncol=1)
+opts(title='汽车油耗与型号')
+labs(y='每加仑高速公路行驶距离',x='每加仑城市公路行驶距离')
+guides(size=guide_legend(title='排量'),colour=
guide_legend(title='车型',override.aes=list(size=5)))
q&- ggplot(mpg,aes(x=hwy))//将变量hwy映射到x轴
q+ geom_histogram()
q+ geom_histogram(aes(fill=factor(year),y=..density..),alpha=0.3,colour='black')
+stat_density(geom='line',position='identity',size=1.5,aes(colour=factor(year)))
+facet_wrap(~year,ncol=1)
class2&- mpg$ class2 &- reorder(class2,class2,length)
mpg$class2&- class2
p&- ggplot(mpg, aes(x=class2))
p+ geom_bar(aes(fill=class2))
p&- ggplot(mpg, aes(x = factor(1), fill = factor(class)))+geom_bar(width = 1)
p+ coord_polar(theta = &y&)
p&- ggplot(mpg, aes(class,hwy,fill=class))
p+geom_boxplot()
p+ geom_violin(alpha=0.3,width=0.9)+geom_jitter(shape=21)
p&- ggplot(diamonds,aes(carat,price))
p+ geom_point()
观察密集散点的方法
o增加扰动 (jitter)
o增加透明度 (alpha)
o二维直方图 (stat_bin2d)
o密度图 (stat_density2d)
//密度曲线
p+ stat_bin2d(bins = 60)
p+ stat_density2d(aes(fill = ..level..), geom=&polygon&)
+coord_cartesian(xlim= c(0, 1.5),ylim=c(0,6000))
+scale_fill_continuous(high='red2',low='blue4')//???????
在对图形属性进行映射之后,使用标尺可以控制这些属性的显示方式,比如坐标刻度,可能通过标尺,将坐标进行对数变换;比如颜色属性,也可以通过标尺,进行改变。
ggplot(small)+ geom_point(aes(x = carat, y = price, shape = cut, colour = color))+ scale_y_log10() + scale_colour_manual(values = rainbow(7))
//将纵坐标取对数,并手动设置颜色为彩虹色
ggplot(small,aes(x = carat, y = price)) + geom_point() + scale_y_log10() +stat_smooth()
ggplot(small)+ geom_bar(aes(x = cut, fill = cut)) + coord_flip()
//coord_flip()实现坐标轴翻转,转换成极坐标可以由coord_polar()实现
//饼图实际上就是柱状图,只不过是使用极坐标而已,柱状图的高度,对应于饼图的角度
ggplot(small)+ geom_bar(aes(x = factor(1), fill = cut)) + coord_polar(theta =&y&)//饼图
//geom_errorbar()画标准误差
ggplot(small,aes(x = carat, y = price)) + geom_point(aes(colour = cut)) +scale_y_log10() + facet_wrap(~cut) + stat_smooth()//facet_wrap()
ggtitle()+xlab()+ylab(),需要改变字体,字体大小,坐标轴,背景等各种元素,这需要通过theme()函数来完成
theme_grey()为默认主题,theme_bw()为白色背景的主题,theme_classic()主题和R的基础画图函数较像
ggthemes包里的主题
theme_economisttheme_economist_white theme_wsj theme_excel theme_few
theme_foundationtheme_igray theme_solarized theme_stata theme_tufte
f &-function(x) 1/(x^2 - 1)
x &-seq(-3, 3, by = 0.001)
d &-data.frame(x = x, y = y)
p &-ggplot()
p &-p + geom_rect(fill = &white&, color = &black&,size = 3, aes(NULL, NULL,
xmin = -3,xmax = 3, ymin = -3, ymax = 3, alpha = 0.1))
p &-p +geom_line(data = d, aes(x, y), size = 3) + ylim(-3, 3)
p &-p + theme_bw() + theme(axis.text.x = element_blank(), axis.text.y =element_blank(),
legend.position= &none&, panel.grid.minor = element_blank(),
panel.grid.major = element_blank(), panel.background =element_blank(),
axis.ticks = element_blank(), panel.border = element_blank())
p +xlab(&&) + ylab(&&)
//geom_rect矩形框,geom_line线,查看?theme帮助文档
二维密度图
ggplot(diamonds,aes(carat, price)) + stat_density2d(aes(fill = ..level..), geom =&polygon&) +
scale_fill_continuous(high = &darkred&,low = &darkgreen&)
//stat_density_2d二维密度图,scale_fill_continuous填充颜色
图层就是对象的不断叠加
mapdist('XiDan','WangFuJing', 'walking')//计算从西单到王府井步行距离信息
adply(x,fun)//针对数组x的每一个元素调用fun函数结果返回一个数据框
字符串操作:
#字符串连接:
paste()#paste(..., sep = & &, collapse = NULL)
paste(“11”,”22”,sep='/') // 11/22
#字符串分割:
strsplit()#strsplit(x, split, extended = TRUE, fixed = FALSE, perl = FALSE)
strsplit(x,split=”,”,fixed=T)//严格按照逗号分割字符串
#计算字符串的字符数:
#字符串截取:
substr(x,start, stop)
substring(text,first, last = 1000000)
substr(x,start, stop) &- value
substring(text,first, last = 1000000) &- value
#字符串替换及大小写转换:
chartr(old,new, x)
tolower(x)
toupper(x)
casefold(x,upper = FALSE)
For (iin 1:10)
日期格式与整数的转换:假设x是日期格式,y是数值
y=as.numeric(x) //将日期x转为数值y
class(y)='Date' //将数值y转为日期
先安装hadoop,然后在R设置HADOOP_CMD,HADOOP_STREAMING环境,安装rhdfs和rmr2包,缺什么依赖包就安装什么依赖包(尽量不要在RStduio下安装)
keyval(key,val)//创建&key,val&的pair,常作为map,reduce,to.dfs,from.dfs的参数,返回一个list对象,强制转化为as.data.frame后会循环key或者val
to.dfs(kv,output = dfs.tempfile(), format = &native&) //上传pair到hdfs
from.dfs(input,format = &native&)//读取hdfs的pair,eg:from.dfs(to.dfs(1:10))
hdfs.ls('/usr/local/hadoop')//查看hdfs文件
mapreduce(input,output=NULL,map,reduce)//input是hdfs上的路径,ouput为NULL时返回一个big.data.object(可以理解为一个hdfs上的临时文件可供其它函数使用),map接收&key,value&形式的multi-pair执行map操作,返回NULL或者pair。reduce接收multi-pair执行reduce操作,返回NULL或pair.
word(string,start=1,end=start,sep=&&)字符串提取函数(包stringr中),string是原始字符串,start表示以sep分割的第start个串开始,end表示以sep分割的第end个串结束,比如word(&he#llo##world##c++&,2,3,sep='##')返回world##c++,sep可以是个字符串(这点比boost库split都优秀啊)
rmr.options(backend= 'hadoop')//使用rmr的hadoop格式,hadoop是默认设置。
merge函数用于合并两个数据框类似于sql中的join
merge(x,y, by = intersect(names(x), names(y)),by.x= by, by.y = by, all = FALSE, all.x = all, all.y = all,sort = TRUE,suffixes = c(&.x&,&.y&),incomparables = NULL,…)默认是合并x和y相同名字的列,可以通过by.x和by.y指定x和y按哪列合并。all是逻辑参数为T表示内连接(即x和y指定的列完全相同才可以连接),all.x表示做链接,all.y表示右链接。如:merge(x,y,by.x=1,by.y=2,all.y=T)//按照x的第一列和y的第二列为关键字合并数据框,并且保留y的所有行,x缺失的用NA代替(rightjoin)
本分类共有文章21篇,更多信息详见
& 2012 - 2016 &
&All Rights Reserved. &
/*爱悠闲图+*/
var cpro_id = "u1888441";
/*爱悠闲底部960*75*/
var cpro_id = "u1888128";

我要回帖

更多关于 竖线怎么打 的文章

 

随机推荐