目录

一、R的语法与数据结构

二、向量

1、数值型向量

2、逻辑向量

3.字符型向量

4、向量的下标运算

三、矩阵

1、矩阵的函数格式

2.矩阵的运算

四、列表

1、列表的构造

2、列表的修改

五、数据框

1、生成数据框

2、数据框的引用

3、数据框的编辑

六、数据的输入和输出

1、输入

2、输出

七、程序控制结构

1、分支结构

2、循环语句


一、R的语法与数据结构

1、符号

符号>表示命令或运算提示符,符号+表示续行符,#表示后面的文字是注释文字。

2、+表示加号,-表示减号,*表示乘号,/表示除号,**或^表示乘方,%*%表示矩阵乘法符号,%%表示求余符号,%/%表示整数除法符号。

3、赋值符

=或<-表示赋值符号,但是比较常用<-。

4、求助符

?plot与help(plot)是等同的意义,表示查看plot函数的帮助。

例:

>3**2 #计算3的平法
[1] 9

二、向量

1、数值型向量

(1)产生等差数列

> 1:10[1]  1  2  3  4  5  6  7  8  9 10
> seq(1,5,by=0.5)
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
> seq(1,5,length=9)
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0

上述二个结果是一样的,但写法不一样,seq(1,5,by=0.5)表示产生从1到5步长为0.5的等差序列,而seq(1,5,length=9)表示9个从1到5的等差序列。

(2)产生较为复杂规律的向量函数rep()

>rep(2:5,2)
[1] 2 3 4 5 2 3 4 5
> rep(2:5,rep(2,4))
[1] 2 2 3 3 4 4 5 5

(3)用函数c()产生无规律的向量

> x=c(1,4,5,5,9)
> x
[1] 1 4 5 5 9

(4)向量的运算

向量运算有加、减、乘、除、乘方,对应的符号为+,-,*,/,,其含义是对向量每个元素进行运算.例如

> x=1:3
> 2*x-1
[1] 1 3 5

两个等长的向量之间的加、减、乘、除、乘方运算是对应元素间的四则运算

> 1:3+c(5,7,2)/c(5,7,1)
[1] 2 3 5

两个不等长的向量之间也可以进行四则运算,其规则是长度短的向量将循环

> c(100, 200)+c(1,2,3,4)
[1] 101 202 103 204

(5)向量运算的几个常用函数

sqrt(x)表示求向量x的平方根

log(x)表示对向量x以自然数为底的对数ln(x)

xp(x)表示对向量的每个元素取指数函数e^x

sin(x),cos(x),tan(x)分别表示向量的正弦函数、余弦函数、正切函数

abs(x)表示绝对值函数.

sort(x,decreasing=FALSE) 表示对向量x从小到大排列,若想从大到小排列,只需将函数中的参数decreasing=FALSE修改为decreasing=TRUE

numeric(n)表示长度为n的零向量.

注意:R中变量或函数是严格区分大小写的,如x和X表示不同的变量

2、逻辑向量

与其他软件一样,R可以进行逻辑操作。当逻辑为真时,返回值为TRUE,当逻辑值为假时,返回值为FALSE

>x=c(1,4,6.5)
> x>3
[1] FALSE  TRUE  TRUE

逻期型向量的比较运算符号有:<,<=,>,>=,==(相等),!=(不等)逻辑向量可以进行与(&)[表示同时满足],或(|)[两者之一]运算

> (x>=2)&(x<5)
[1] FALSE  TRUE FALSE

3.字符型向量

也可以输入字符型向量:

> y1=c('a','b')
> y1
[1] "a" "b"

字符型需要用引号(单引号或双引号)进行区分,而且引号是英文状态下的引号.paste( )函数可以用来把这些字符连成字符串,中间使用相应的分隔符

4、向量的下标运算

R中向量的下标从1开始,这与通常的数学软件不一致,访问向量x的某素用x[i]

> x=c(47,8,64,9)
> x[2]
[1] 8

也可以单独改变个别元素的值,如你发现向量中第3个分量输入错误,不64而是84,你可以用命令

>x[3]=84

通常可能需要同时访问向量的一部分,可以采用下标向量的方法,主要有下述几种情形

(1)正整数下标向量

> x[c(1,4)] #表示访问向量x的第一个、第四个分量
[1] 47  9
> x[2:4]  #表示访问x的第2到4个的分量
[1]  8 64  9

(2)负整数下标向量

> x[-1] #表示删掉第一个元素
[1]  8 64  9

(3)逻辑下标向量

> x[x<10] #表示选取x<10的元素
[1] 8 9

三、矩阵

1、矩阵的函数格式

matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL)

data为数据向量,nrow为矩阵的行数,ncol为列数,byrow=TRUE表示按行方式写成矩阵,否则按列排,默认是按列组成矩阵.

> A=matrix(1:12,ncol=4,byrow=T) #表示生成3行4列的矩阵,只需指定列数就行
> A[,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12

cbind()函数把向量横向拼成一个大矩阵,rbind()函数则是把向量纵向拼成一个大矩阵

> B=rbind(c(1,2),c(3,4)) #把二个向量纵向拼成一个矩阵
> B[,1] [,2]
[1,]    1    2
[2,]    3    4
> C=cbind(c(1,2),c(3,4)) #把二个向量横向拼成一个矩阵
> C[,1] [,2]
[1,]    1    3
[2,]    2    4

2.矩阵的运算

矩阵可以进行四则运算(十,一,*,/,等运算)表示矩阵对应元素的四则运解,参与运算的矩阵通常是相同形状的矩阵,形状不一样的向量和矩阵也可以运算,规则是矩阵的数据按列拉直为向量进行相应的运算。例如:
>A+c(100,200,300)
矩阵乘法用A%*%B,t(A)表示A的转置,行列式det(A),求逆矩阵solve(A),求特征值eigenvalue(A)

> A=matrix(c(1,2,-1,-3,2,4,0,-4,-1,1,2,2,0,2,1,3),nrow=4)
> det(A)
[1] -20
> solve(A)[,1] [,2]  [,3]  [,4]
[1,] -1.4  0.6 -0.90 -0.10
[2,]  0.8 -0.2  0.55 -0.05
[3,] -0.8  0.2  0.20 -0.20
[4,]  0.2  0.2 -0.30  0.30

四、列表

1、列表的构造

> rec =list(name="黎明",age=30,scores=c(89,78,65))
> rec
$name
[1] "黎明"$age
[1] 30$scores
[1] 89 78 65
> rec[[2]]
[1] 30

2、列表的修改

假如列表rec中的名字输错了,是“张三”,而不是“黎明”,用下面的方式修改:

>rec$name=“张三”

五、数据框

1、生成数据框

一般可以把数据框看做一种推广了的矩阵,可用矩阵形式表示,如:

d=data.frame(name=c("李明","张冲","王建"),age=c(30,35,28),height=c(180,162,175))
> dname age height
1 李明  30    180
2 张冲  35    162
3 王建  28    175

2、数据框的引用

引用数据框元素的方法和引用矩阵元素的方法相同

> d[1:2,2:3] #表示数据框的前两行后二列age height
1  30    180
2  35    162

数据框的各变量也可以用双括号[[]]或$符号引用

> d[["age"]]
[1] 30 35 28
> d$height
[1] 180 162 175

数据框的各行也可以定义名字,用rownames属性定义

> rownames(d)=c("one","two","three")
> dname age height
one   李明  30    180
two   张冲  35    162
three 王建  28    175

3、数据框的编辑

可用函数edit()对数据框进行编辑,也可以对向量、矩阵类型数据进行修改和编辑

>newd=edit(d)

六、数据的输入和输出

1、输入

1)read.table()函数

read.table()函数可以读取表格形式的文件,如班级成绩存储在c:/cjb.txt文件中,读取格式如下

>cjb=read.table(“c:/cjb.txt”,header=T)

>cjb

header=TRUE或T表示第一行读入的是变量名而不是数据,默认的情形是header=FALSE,即认为第一行是数据,而且会自动添上列名.
2) read.csv()函数
read.csv()函数也是比较常用的函数,其读取的格式是逗号分割的文本文件,用法基本上与read.table()函数类似.另外还有其他的读入数据的函数.
read.csv2()读取分号分隔的文本文件,逗号代替小数点.
read.delim()读取制表符分隔的文件.

read.delim2()读取制表符分隔的文件,逗号代替小数点.
read.fwf()读取固定宽的文件.
注意:通常R是不能直接读取Excel数据文件的,一般是推荐先对数据进行转换,比如转换为csv文件,再进行读取.

2、输出

输出与输入在格式上非常相似.主要的函数为write.
write.table()函数可以把数据输出到一个外部文件中.如把刚才产生的cjb数据输出到cjbout.txt中:
>write.table(cjb,”c:/cjbout.txt")
当然也有与输入格式对应的函数,如:
write.csv(),write.csv2()

七、程序控制结构

1、分支结构

1)if else语句

    if(条件)表达式
或if(条件)表达式1 else表达式2

2)switch分支结构

switch语句根据条件表达式的多个值选择一个语句执行。语法形式:

switch(cond,expression1,expression2,...,expressionn)

注意表达式间的","不能省略。switch语句输出的是根据cond选择的表达式的值。

2、循环语句

1)for循环

语法形式:

for(循环变量i in 范围d)

{

... ...

}

例如,构造一个5阶Hilbert矩阵,其元素的特点是,每个元素等于其下标和减一的倒数,即:

x[i,j]=1/(i+j-1)

> x=matrix(0,nrow=5,nc=5)
> for(i in 1:5){}
> x=matrix(0,nrow=5,nc=5)
> for(i in 1:5){}
> x=matrix(0,nrow=5,nc=5)
> for(i in 1:5){
+ for(j in 1:5){
+ x[i,j]=1/(i+j-1)}}
> x[,1]      [,2]      [,3]      [,4]      [,5]
[1,] 1.0000000 0.5000000 0.3333333 0.2500000 0.2000000
[2,] 0.5000000 0.3333333 0.2500000 0.2000000 0.1666667
[3,] 0.3333333 0.2500000 0.2000000 0.1666667 0.1428571
[4,] 0.2500000 0.2000000 0.1666667 0.1428571 0.1250000
[5,] 0.2000000 0.1666667 0.1428571 0.1250000 0.1111111

2)while语句

while语句在输入数据符合条件表达式时,执行语句体,否则跳出循环继续执行程序的下一条语句。

语法形式:

while(条件表达式)

{

... ...

}

当while语句的条件表达式=TRUE时,只有用break语句跳出循环。

RStudio的语法结构相关推荐

  1. 数据结构与算法:02 C#语言基本语法结构

    02 C#语言基本语法结构 知识结构: 1.数据类型 第一种分类: 简单数据类型:byte.short.int.long.float.double.char.bool 组合数据类型:struct.en ...

  2. R语言用户自定义函数的语法结构、编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等)、编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据)、应用自定函数

    R语言用户自定义函数的语法结构.编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等).编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据).应用自定函数 ...

  3. FPGA之道(40)HDL的语法结构

    文章目录 前言 语法结构 省略与否请一致 范围方向请一致 端口声明请一致 参数声明请一致 映射方式请一致 代码缩进请一致 空格空行 注释编写 解释说明 段落分隔 代码保留 模块设计 确定好端口的顺序 ...

  4. python003 一 Python起步、pyhthon运行方式、语法结构、python变量

    一,python起步 二,python运行方式 三,python语法结构 1,语句块缩进 2,注释及续行   (多行注释--ctrl+?) 3,同行多个语句 4,输出语句 print('Hello', ...

  5. PHP条件语句总结,PHP 条件语句基本语法结构

    php中条件语句就if else与swicth及三目运算符了,下面我来给大家介绍这些条件语句的一些语法吧. if单分支的基本语法结构 if(条件表达式){ //执行语句; } if双分支 基本语法结构 ...

  6. PHP 数组遍历 foreach 语法结构

    来源:http://www.cnblogs.com/keta/p/6117237.html foreach 语法结构用于遍历数组. foreach() PHP foreach() 语法结构用于遍历操作 ...

  7. Tcl与Design Compiler (二)——DC综合与Tcl语法结构概述

    本文如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/  ,作者:IC_learner 1.逻辑综合的概述 synthesis = tra ...

  8. Shell的基本语法结构

    Shell的基本语法结构 文章目录 Shell的基本语法结构 一.SHELL介绍 1. 编程语言分类 2. shell简介 3. shell脚本 二.变量的定义 1. 变量是什么? 2. 什么时候需要 ...

  9. php总结1 ——php简介、工作原理、运行环境、文件构成、语法结构、注释

    1.1 PHP  超文本预处理程序.实际就是制作网站的脚本程序 1.2 运行环境: wamp--windowns+apache+mySQL+php    常用于开发.学习和研究 lamp --linu ...

最新文章

  1. 图灵访谈系列之一:陈世欣谈产品经理与社区
  2. Visual Studio 2005 SQL Server 2005 are COMING!
  3. Windows系统更新问题汇总(补充修改)
  4. HTML基础复习(三)表格
  5. centos 安装java1.7_centOs安装jdk1.7
  6. 【渝粤题库】广东开放大学 民事诉讼法学 形成性考核
  7. oracle存储sql片段引入_强大的跨数据库访问组件 UniDAC使用教程:注释和SQL函数...
  8. Android进阶:自定义视频播放器开发(下)
  9. api文档数据量太大崩溃_Tableau的API操作(一)-取消任务刷新
  10. 风格之争:Coroutine vs Callback
  11. Linux系统编程 -- 线程私有属性
  12. unity3d 射击游戏BOSS行为代码
  13. 让应用通过苹果审核出人头地的10个方法
  14. mysql必须记住的单词_如何真正记住英语单词?
  15. 无法打开html5,IE浏览器无法打开怎么办
  16. window7修改屏幕旋转快捷键
  17. CC++初学者编程教程(6) 配置WindowsXP虚拟机与VC6.0
  18. Unity Shader Interior mapping 内部映射
  19. stm32f103r8t6的晶振频率_STM32F103R8T6 中文资料
  20. 魔兽对战平台服务器更新维护什么,魔兽官方对战平台更新:公会系统正式上线!...

热门文章

  1. rs232接口_【涨知识】RS232接口与RS485究竟有什么区别?
  2. 计算机ppt制作实验报告总结,ppt实验报告心得体会[工作范文](18页)-原创力文档...
  3. UG\NX二次开发 显示所有图层上所有的对象
  4. android菜单的类型有几种,Android中的Menu(菜单)的三种类型菜单的学习
  5. ecshop数据库结构
  6. (已解决)关键词爬取百度搜索结果,返回百度安全验证,网络不给力,请稍后重试,无法请求到正确数据的问题(2023最新)
  7. 录入并打印名单python_Python如何使用字符打印照片
  8. 社会保障IC卡发卡方案
  9. CorelDRAW 快捷键全攻略(1)
  10. Apache Kylin 的预计算是怎么回事?