1.R软件的下载安装
1.R官网地址:https://www.r-project.org/
2.下载流程:
3.安装:
双击运行,语言简体中文,问题不大,都懂的,能不装C盘就不装:
后面我都默认。
4.安装成功:
2.R的使用:
1.读取xls文件
Install.packages("gdata")
library(gdata)
输入以下命令:
sheet=1 参数的意思是读取第一个sheet中的内容;
na.strings=c(“NA”,"#DIV/0!") 将"NA" 和 “#DIV/0!” 都作为缺失数据表示;
perl是perl.exe的所在路径,没有它需要下载,不然会报错
R显示中文乱码,因此需要加入参数encoding=‘UTF-8’
x<- read.xls("./年度数据.xls",sheet=1,na.strings=c("NA","#DIV/0!"),perl="D:\\Strawberry\\perl\\bin\\perl.exe",encoding='UTF-8')
2.画多列数据的散点图、轮廓图、雷达图、调和曲线图、星座图、脸谱图
我的数据
> data数据库.年度数据 X X.1 X.2 X.3 X.4 X.5 X.6 X.7
2 指标 2019年 2018年 2017年 2016年 2015年 2014年 2013年 2012年
3 年末总人口(万人) 140005 139538 139008 138271 137462 136782 136072 135404
4 男性人口(万人) 71527 71351 71137 70815 70414 70079 69728 69395
5 女性人口(万人) 68478 68187 67871 67456 67048 66703 66344 66009
6 城镇人口(万人) 84843 83137 81347 79298 77116 74916 73111 71182
7 乡村人口(万人) 55162 56401 57661 58973 60346 61866 62961 64222X.8 X.9 X.10 X.11 X.12 X.13 X.14 X.15 X.16 X.17 X.18
2 2011年 2010年 2009年 2008年 2007年 2006年 2005年 2004年 2003年 2002年 2001年
3 134735 134091 133450 132802 132129 131448 130756 129988 129227 128453 127627
4 69068 68748 68647 68357 68048 67728 67375 66976 66556 66115 65672
5 65667 65343 64803 64445 64081 63720 63381 63012 62671 62338 61955
6 69079 66978 64512 62403 60633 58288 56212 54283 52376 50212 48064
7 65656 67113 68938 70399 71496 73160 74544 75705 76851 78241 79563X.19
2 2000年
3 126743
4 65437
5 61306
6 45906
7 80837
(1)散点图-plot.default
命令:
plot.default(2019:2000,data[2,2:21],ylim=c(40000,150000),col=21,xlab="年份",ylab="万人")
#plot.default()画散点图
#2019:2000,是横坐标,步长为1
#data[2,2:21],就是第2行的第2列到第21列数据(R语言中数组的索引从1开始),是纵坐标
#ylim=c(40000,150000),默认5等分。即步长为20000,这是纵坐标轴的取值范围
#col=21,是点的颜色,我这里采取数字型,至于数字型和标识型详细信息,看这个链接吧----[](https://www.sohu.com/a/136906426_572440)[https://www.sohu.com/a/136906426_572440]()R语言的颜色
#xlab和ylab就是横纵坐标轴的名称
par(new=TRUE)#这个好像不用加,加了这个你后面就可以继续用plot.default()在同一张图上绘图,但是纵坐标轴的值不统一,所以我采用的是points(),points在同一张图下画,并且横纵坐标轴是统一的。
for(i in 3:6){
+ points(2019:2000,data[i,2:21],col=21*i)#里面三个参数的意思和上面所述是一样的,他比plot.default()的好处是不仅可以在同一张图下绘图,而且横纵坐标是统一的
+ }
> axis(1,2019:2000)#给横轴赋值,1代表改变的是横轴,2019:2000代表步长为1的数组,不加他的话,只显示三四个横坐标值
效果图:
(2)轮廓图-paralleplot
命令:
> library(lattice)
> paralleplot(data)
效果图:
(3)雷达图-radarchart
命令
tdata<-t(data)#转置矩阵
tdata<-tdata[,2:6[2:21,]#去掉文字部分
tdata<-data.frame(tdata)#将矩阵改为data.frame类型
atdata=as.data.frame(lapply(tdata,as.numeric))#将矩阵的char类型改为num类型
ttdata<-rbind(rep(150000,5),rep(0,5),atdata)#第一行插入150000,第二行为0,分别是雷达图纵轴的最大最小值
radarchart(ttdata, axistype=1, seg=5,vlabels=data[2:6,1],centerzero = TRUE)#画图,axistype=1代表中心轴显示百分比,seg=5中心轴代表分为5段,vlabels是蜘蛛网图各个轴的名称,centerzero=TRUE代表中心点是最小值
效果图
4.调和曲线图-andrews_curve
命令
> install.packages("MSG")
> library(MSG)
> adata<-data[2:6,2:21]
> adata=as.data.frame(lapply(adata,as.numeric))
> andrews_curve(adata)
效果图
5.星座图-stars
命令
> sdata<-data.frame(tdata,row.names=data[1,2:21])#取行名
> names(sdata)<-data[2:6,1]#取列名
> stars(sdata,full=TRUE,draw.segments=TRUE,key.loc=c(15,3.5),cex=0.8,nrow=5,ncol=4)#full为true意味着是360°,draw.segments=TRUE表示绘制出的箱线图为弧形,key.loc是标准星图的位置,cex标签字体的大小,nrow,ncol是呈现出来的图形的排列属性,在location=NULL时生效
效果图
6.脸谱图-faces
命令
> fdata<-data.frame(tdata)
> fdata=as.data.frame(lapply(fdata,as.numeric))
> fdata<-data.frame(fdata,row.names=data[1,2:21])
> names(fdata)<-data[2:6,1]
> faces(fdata,nrow.plot=4,ncol.plot=5,face.type=0)#一个0到2之间的整数,其含义为:0 =画线面,1 =画面元素,2 =画圣诞老人的面
effect of variables:modified item Var"height of face " "年末总人口(万人)""width of face " "男性人口(万人)""structure of face" "女性人口(万人)""height of mouth " "城镇人口(万人)""width of mouth " "乡村人口(万人)""smiling " "年末总人口(万人)""height of eyes " "男性人口(万人)""width of eyes " "女性人口(万人)""height of hair " "城镇人口(万人)""width of hair " "乡村人口(万人)""style of hair " "年末总人口(万人)""height of nose " "男性人口(万人)""width of nose " "女性人口(万人)""width of ear " "城镇人口(万人)""height of ear " "乡村人口(万人)"
效果图
3.碰到的问题
1.重中之重,多用help(your function)或 ??your function(有时候,后者可能没用,而前者有用),
2.Error in findPerl(verbose = verbose) : perl executable not found. Use perl= argument to specify the correct path.Error in file.exists(tfn) : 'file’参数不对
解决:
第一步:安装perl,官网地址http://strawberryperl.com/,我的下载地址http://strawberryperl.com/download/5.32.0.1/strawberry-perl-5.32.0.1-64bit.msi
第二步,读取xls文件时,参数需要添加,perl的所在路径,我的是
perl="D:\\Strawberry\\perl\\bin\\perl.exe"
3. 安装BiocManager,Bioconductor在R3.5版本以后不要用source方法进行安装:用下述方法
> install.packages("BiocManager")
用它安装一些包
> BiocManager::install("package_name")
4.矩阵转置
t(x)#x就是需要转置的矩阵
5.seq函数的用法,自定义步长赋值向量
seq(from = 1.5 , to = 8.2 ,by = 2.4) ##from,to,by可以省略,但顺序不能变
6.将char型改为num型,矩阵
data2=as.data.frame(lapply(data,as.numeric))##data就是要转换的矩阵,data2就是转换结果
7.ggradar:R语言雷达图
安装:
install.packages("devtools")
devtools::install_github("ricardo-bion/ggradar", dependencies=TRUE)#我下载失败了,还是老老实实用radarchart吧
8.去掉矩阵某一行或某一列
x[-i,]#去掉第i行
x[,-j]#去掉第j列
9.Error in install.packages(MSG) : 找不到对象’MSG’
install.packages("MSG")
10.查看矩阵matrix元素类型
str(x)
11.R语言中数据框如何改行列名称
data<-data.frame(data,row.names=data[1,2:21])##row.names就是行名
names(data)<-data[2:6,1]##这样子列名也改好了