Published: 2016-12-03 20:15:00
By ytwan
In Data Mining .
tags: SQL
左偏态,负偏态
a <- c ( 1 , 2 , 3 , 4 , 5 , 6 , 6 , 7 , 7 , 7 , 8 , 8 , 8 , 8 , 9 , 9 )
summary ( a)
sum ( a) / length ( a)
Mean <- mean ( a)
Median <- median( a)
Mode <- as.numeric ( names ( table ( a)))[ which.max ( table ( a))]
library ( fBasics)
skewness( a)
// kurtosis( a)
Frea <- as.data.frame ( table ( a))
plot( Frea)
Mean
Median
Mode
右偏态,正偏态
b <- c ( 1 , 1 , 2 , 2 , 2 , 2 , 3 , 3 , 3 , 4 , 4 , 5 , 6 , 7 , 8 , 9 )
summary ( b)
sum ( b) / length ( b)
Mean <- mean ( b)
Median <- median( b)
Mode <- as.numeric ( names ( table ( b)))[ which.max ( table ( b))]
skewness( b)
Freb <- as.data.frame ( table ( b))
plot( Freb)
Mean
Median
Mode
结论以及总结
绘图布局尺寸等:
R绘图所占的区域,被分成两大部分,一是外围边距,一是绘图区域。绘图区域被区分为多个区域, 一个细分的绘图区域分为两个部分,一是绘图边距
外围边距可使用par() 函数中的oma来进行设置。
比如oma= c ( 4 , 3 , 2 , 1 ) ,就是指外围边距分别为下边距:4 行,左边距3 行,上边距2 行,右边距1 行。
很明显这个设置顺序是从x轴开始顺时针方向。这里的行是指可以显示1 行普通字体。所以当我们使用mtext中的line参数时,设置的大小就应该是[ 0 , 行数) 的开区间。
当我们使用mtext在外围边距上书写内容时,设置mtext中的outer= TRUE 即可。
绘图区域可使用par() 函数中的mfrow, mfcol来进行布局。mfrow和mfcol可以使用绘图区域被区分为多个区域。默认值为mfrow( 1 , 1 ) 。
我们将每一个细分的绘图区域分为两个部分,
一是绘图边距: 绘图边距需要容纳的内容有坐标轴,坐标轴标签,标题。通常来讲,我们都只需要一个x轴,一个y轴,所以在设置时,一般的下边距和左边距都会大一些 。如果多个x轴或者y轴,才考虑将上边距或者右边距放大一些。绘图边距可以使用par() 函数中mar来设置。比如mar= c ( 4 , 3 , 2 , 1 ) ,与外围边距的设置 类似, 也可以使用mai来设置。mai与mar唯一不同之处在于mai不是以行为单位,而是以inch为单位。
用mfrow, mfcol只能是矩阵似的布局,如果我们需要简单地实际不规则的布局,使用layout() 专门用于布局
layout( mat, widths = rep ( 1 , ncol ( mat)), heights = rep ( 1 , nrow ( mat)), respect = FALSE )
mat就要描述每个图所在的位置,其中1 …N-1 都必须至少出现过一次。比如有三个图,我们希望的布局是第一排有一个图,第二排有两个图,那么mat<- matrix ( c ( 1 , 1 , 2 , 3 ), nrow= 2 , ncol= 2 , byrow = TRUE ) ;
widths和heights用来指定每行或者每列的宽度和高度的。
ggplot2绘图模板
####################################
##加载绘图包
library ( ggplot2)
## 读入数据,如果不在当前工作环境下,要添加数据所在的具体路径
Data01 <- read.table( "type01.txt" , sep= "\t" , header= TRUE , stringsAsFactors= FALSE )
Data02 <- read.table( "type02.txt" , sep= "\t" , header= TRUE , stringsAsFactors= FALSE )
##做基本图
p1 <- ggplot( Data01, aes( x= Type, y= numbers, fill= Type)) + geom_bar( stat= "identity" )
p2 <- ggplot( Data02, aes( x= relation, y= PATEnumber, fill= type)) + geom_bar( stat= "identity" , width= 0.69 , position= position_dodge( 0.7 ))
##添加图片标题
p1 <- p1+ ggtitle( "A" )
p2 <- p1+ ggtitle( "B" )
##添加坐标轴标签
p1 <- p1+ xlab( " sites types" ) + ylab( "Numbers of sites" )
p2 <- p2+ xlab( "The types of associations " ) + ylab( "Numbers of sites" )
##修改坐标刻度标签的项目顺序以及标签
p1 <- p1+ scale_fill_discrete( limits= c ( "TR" , "5TR" , "CS" , "inter" , "moter" , "tron" ), labels= c ( "TR" , "5TR" , "CS" , "inter" , "moter" , "tron" ))
p2 <- p2+ scale_x_discrete( limits= c ( "down" , "mid" , "up" ), labels= c ( "Up" , "In" , "Down" ))
##修改图例的标签以及位置
p1 <- p1+ labs( fill= "Types" )
p1 <- p1+ theme( legend.position= c ( 0.88 , 0.8 ))
p2 <- guides( fill= FALSE )
p2 <- p2+ theme( legend.position= c ( 0.88 , 0.8 ))
##添加文本注释
p1 <- p1+ annotate( "text" , x= 3 , y= 4 , label= "group 1" )
p2 <- p2+ annotate( "text" , x= 3 , y= 4 , label= "group 2" )
##############
###设置图片的字体族、字体大小、颜色,对齐方式、旋转角度
##在Windows下的字体族添加到R语言中,如果采用R自带的字体族可以直接用,这条命名可以注释掉
windowsFonts( roman= windowsFont( "Times New Roman" ))
##设置标题
p1 <- p1+ ggtitle( "A" ) + theme( plot.title= element_text( family= "roman" , face= "bold" , colour= "black" , size= 14 ))
p2 <- p2+ theme( plot.title= element_text( family= "roman" , face= "bold" , colour= "black" , size= 12 ))
##设置坐标刻度标签的字体大小等外观
p1 <- p1+ theme( axis.text.x= element_text( family= "roman" , face= "bold" , colour= "black" , size= 14 , angle= 30 , hjust= 0.5 , vjust= 1 ))
p1+ theme( axis.text.y= element_text( family= "roman" , face= "bold" , colour= "black" , size= 14 ))
##设置坐标轴标签文本的外观
p1 <- p1+ theme( axis.title.x= element_blank())
p1 <- p1+ theme( axis.title.y= element_text( family= "roman" , face= "bold" , colour= "black" , size= 14 ))
##设置图例标签和图例标题字体,大小等
p1 <- p1+ theme( legend.title= element_text( family= "roman" , face= "bold" , colour= "black" , size= 14 ))
p1 <- p1+ annotate( "text" , x=- Inf , y= Inf , label= "A" , hjust= -.2 , vjust= 2 , family= "roman" , face= "bold" , colour= "black" , size= 14 )
p2 <- p2+ theme( axis.text.x= element_text( family= "roman" , face= "bold" , colour= "black" , size= 14 , angle= 30 , hjust= 0.5 , vjust= 1 ))
###把两幅图放在一个页面上###保存图形的位置,名称以及格式,分辨率,尺寸
win.metafile( filename= "E:/2016_Bioinfor/Rice/Single_entropy/Tissue_distribute.emf" , width= 13.5 , height= 11 )
#png(filename="site_distribute.png",width=400,height=400)
library ( grid)
##清除当前设备或移动到新的page
grid.newpage()
##用viewport创建视图窗口,并用grid.layout创建布局,同时把布局给视窗
VP <- viewport( layout = grid.layout( 2 , 1 ))
##用pushViewport()命令锁定该图层,使之成为目标区域
pushViewport( VP)
#创建布局函数,函数参数是放置图形的位置
vplayout <- function ( x, y) viewport( layout.pos.row = x, layout.pos.col = y)
#绘图
print ( p1, vp = vplayout( 1 , 1 ))
print ( p2, vp = vplayout( 2 , 1 ))
##关闭图形设备
dev.off()
数据归一化
a <- read.table( "C:\\Users\\Administrator\\Desktop\\a.txt" )
###应用于矩阵
scale ( a, center= TRUE , scale= FALSE )
scale ( a, center= TRUE , scale= TRUE )
scale ( a, center= FALSE , scale= TRUE )
scale ( a, center = FALSE , scale = apply ( a, 2 , sd, na.rm = TRUE ))
###sqrt(sum(x^2)/(n-1))
maxmin <- function ( dat){( dat- min ( dat)) / ( max ( dat) - min ( dat))}
apply ( a, 2 , maxmin)
应用于向量
#####
d <- c ( 100 , 200 , 300 , 400 )
###线性函数归一化(Min-Max scaling)线性函数将原始数据线性化的方法转换到[0 1]的范围
##运行R语言的归一化 前提默认是最大值和最小值是不相同的,如果相同,则返回NaN,表示无意义数据
#两种方式到[0 1],
##效益型指标(越大越好型)的隶属函数:
( d- min ( d)) / ( max ( d) - min ( d))
## 成本型指标(越小越好型)的隶属函数:
( max ( d) - d) / ( max ( d) - min ( d))
###【-1,1】
( d- min ( d)) / ( max ( d) - min ( d)) * ( 1 - ( -1 )) + ( -1 )
( d- min ( d)) / ( max ( d) - min ( d)) * 1+0
###当min=max时 2*(d-min(d)) /((max(d)-min(d))-1)
###中心化,减去均值
scale ( d, center= TRUE , scale= FALSE )
d- mean ( d)
###0均值归一化方法将原始数据集归一化为均值为0、方差1的数据集
scale ( d, center= TRUE , scale= TRUE )
( d- mean ( d)) / sd( d)
( d- mean ( d)) / sqrt ( sum (( d- mean ( d)) ^ 2 ) / 3 )
### x/sqrt(sum(x^2)/(n-1))
scale ( d, center= FALSE , scale= TRUE )
d/ sqrt ( sum ( d^ 2 ) / ( 3 ))
### x/sd(x)
###
scale ( d, center= FALSE , scale= sd( d))
scale ( d, center= 1 , scale= sd( d))
d/ sd( d)
###对矩阵处理scale(a, center = FALSE, scale = apply(a, 2, sd, na.rm = TRUE))
参考
http://blog.qiubio.com:8080/archives/2395
http://blog.qiubio.com:8080/
http://www.bugman123.com/index.html