R基础语句

产生向量:
1、x=1:10
 2、x=2:60*2+1
 3、x[5]                                      #取向量的第5个元素
 4、x[-5]                                     #将向量的第5个元素去掉
 5、x[c(2,4,7)]                               #取向量的第2,4,7个元素
 6、x[x<20]                                   #取向量中小于20的元素
 7、x[x>30 & x<50]                            #取向量中大于30小于50的元素
 8、seq(起始值,重点值,步长)          #序列发生器产生向量(by 或length选择步长)
 9、letters[1:30]                             #产生1到30个字母
    which.min(a);                             #返回向量中最小值的位置
    which(x>5);                               #返回向量中大于5的元素的位置
    rev(x);                                   #求向量的反转
    sort(x);                                  #求向量进行排序
向量的计算:
  x=c(a,b,c,d,e,f,g);                 #对向量赋值
  length(x);                          #求向量的长度
  rbind(x1,x2);                       #将向量组成行向量
  cbind(x1,x2);                       #将向量组成列向量
  mean(x);                            #求向量元素的均值
  sum(x);                             #求向量元素的和
  min(x);                             #求向量元素的最小值
  max(x);                             #求向量元素的最大值
  var(x);                             #求向量元素的方差
  prod(x);                            #求向量元素的和乘积
  sd(x);                              #求向量元素的标准差
生成矩阵:
x=c(1:12);  a=b=matrix(x,nrow=3,ncol=4);        #将1到12的数组变成3行4列的矩阵
t(a);                                             #矩阵的转置
a+b;                                              #a与b矩阵相加
a-b;                                              #a与b矩阵相减
a%+%b                                             #a与b矩阵相乘
diag(a)                                           #求a的特征矩阵
diag(4)                                           #生成4行4列的单位矩阵
solve(a)                                          #求矩阵a的逆矩阵
solve(a,b)                                        #解方程组a*x=b
eigen(a)                                          #求矩阵a的特征向量
apply(x,1(2),mean(min/max))          #在矩阵的行(列)上求均值(最大值/最小值)
读入数据
数据框:x=data.frame(x1,x2)                
读文本文件数据:
将文本放入工作目录,输入:(x=read.table(“abc.txt”))
读剪切板,复制后输入:y<-read.table(“clipboard”,header=F)
读Excel文件数据:
0、install.packages("readxl")            ##下载和引用
        library(readxl)
        read_excel("old_excel.xls")          # #读取Excel
1、先把Excel另存为空格分隔的prn文本格式再读:w<-red.table(“test.prn”,header=T)
2、安装RODBC包,再通过ODBC读:
   library(RODBC)                                 #装载RODBC包
   z<-odbcConnectExcel(“test.xls)            #将Excel数据读入z数据框里
 (w<-sqlFetch(z,”Sheet1”))                   #读出数据
3、install.packages("xlsx")
            library(xlsx)
            read.xlsx(file, sheetIndex)
           write.xlsx(x,file)
读CSV格式文件数据:
写入csv:输入csv使用内置函数write.csv()来实现
读取csv:读取csv使用函数read.csv()来读取
例:
写入CSV格式数据:
data <- data.frame(姓名 = c("张三", "李四", "王五"), 体重 = c(50, 70, 80), 视力 = c(5.0, 4.8, 5.2))
data
姓名 体重 视力
1 张三   50  5.0
2 李四   70  4.8
3 王五   80  5.2
write.csv(data, file = "data.csv")

有时,我们需要把列名去掉,就需要使用row.names = FALSE或者row.names = F

write.csv(data, file = “data.csv”, row.names = FALSE)
有时候数据里面存在NA,要去掉NA的,就再加一个na = “”
write.csv(data, file = “data.csv”, row.names = FALSE, na = “”)
如果要省略行名的话,就稍微复杂一点,需要使用write.table()的col.names = FALSE, sep = “,”
write.table(data, file = “data.csv”, row.names = FALSE, na = “”, col.names = FALSE, sep = “,”)
读取CSV格式数据:
newdata <- read.csv(file = “data.csv”, header = TRUE)
newdata
姓名 体重 视力
1 张三 50 5.0
2 李四 70 4.8
3 王五 80 5.2

循环语句:
write.csv(data, file = "data.csv")
for语句:for(i in 1:59)
while语句:a[1]=5; i=1; while(a[i]<121) {i=i+1;a[i]=a[i-1]+2}

R脚本:
print函数:脚本里显示变量值
source函数:写r脚本,运行source(“D:\h.r”)

作图:
  直方图绘制函数hist:hist(x$x1)
  散点图绘制函数plot:
plot(x$x1,x$x2,
main="数学分析与线性代数成绩的关系",           #设置标题
xlab="数学分析",                             #设置x轴的注解
ylab="线性代数",                             #设置y轴的注解
xlim=c(0,100),                              #设置x轴的变化范围
ylim=c(0,100),                              #设置y轴的变化范围
xaxs="i",                                   #设置x轴样式为内部样式
yaxs="i",                                   #设置y轴样式为内部样式
col="red",                                  #将绘图符号的颜色设置为红色
pch=19)                                     #将绘图符号设置为填充点

连线图:a=c(2,3,4,5,6); b=c(4,7,8,9,12); plot(a,b,type=“l”)
向日葵散点图:sunflowerplot(iris[, 3:4], col = “gold”, seg.col = “gold”)
散点图集:pairs(iris[,1:4]) 或 plot(iris[,1:4]) 或
par(mfrow=c(3,1)) plot(x1,x2);plot(x2,x3);plot(x3,x1)
三维散点图:安装scatterplot3d包,scatterplot3d(x[2:4])
列联函数table(统计每类的数量):table(x x 1 ) b a r p l o t b a r p l o t ( t a b l e ( x x1) 柱状图绘制函数barplot:barplot(table(x x1))
饼图绘制函数pie:pie(table(x x 1 ) ) b o x p l o t b o x p l o t ( x x1)) 箱尾图绘制函数boxplot:boxplot(x x1,x x 2 , x x2,x x3)
水平放置的箱尾图:boxplot(x x 1 , x x1,x x2,x x 3 , h o r i z o n t a l = T ) 线 b o x p l o t ( x [ 2 : 4 ] , c o l = c ( " r e d " , " g r e e n " , " b l u e " ) , n o t c h = T ) s t a r s s t a r s ( x [ c ( x 1 , x 2 , x 3 ) ] ) s t a r s ( x [ c ( x 1 , x 2 , x 3 ) ] , f u l l = T , d r a w . s e g m e n t = T ) a p l p a c k f a c e s ( x [ c ( x 1 , x 2 , x 3 ) ] ) s t e m s t e m ( x x3,horizontal=T) 箱线图:boxplot(x[2:4],col=c("red","green","blue"),notch=T) 星相图绘制函数stars:stars(x[c(“x1”,”x2”,”x3”)]) 雷达图:stars(x[c(“x1”,”x2”,”x3”)],full=T,draw.segment=T) 脸谱图,安装aplpack包:faces(x[c(“x1”,”x2”,”x3”)]) 茎叶图绘制函数stem:stem(x x1)
QQ图(判断是否正态分布):qqnorm(x)或qqline(x)
密度图绘制函数density:plot(density(rnorm(1000)))

三维作图:
x<-y<-seq(-2*pi, 2*pi, pi/15)
f<-function(x,y) sin(x)*sin(y)
z<-outer(x, y, f)
contour(x,y,z,col="blue")
persp(x,y,z,theta=30, phi=30, expand=0.7,col="lightblue")
绘图参数:
dev.new()                               #新建一个图形窗口
dev.cur()                                #看到当前的图形窗口
dev.list()                                #查看当前绘图窗口的数量
dev.nest()                              #查看下一个绘图窗口

扩展:
数据抓取
------网络爬虫RCurl
数据加工
------金融数据分析quantmod、数据加工厂plyr
数据可视化
------数据可视化包ggplot2、交互化展示包shiny

发布了30 篇原创文章 · 获赞 0 · 访问量 344

猜你喜欢

转载自blog.csdn.net/hua_chang/article/details/105034739
今日推荐