RStudio的语法结构
目录
一、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的语法结构相关推荐
- 数据结构与算法:02 C#语言基本语法结构
02 C#语言基本语法结构 知识结构: 1.数据类型 第一种分类: 简单数据类型:byte.short.int.long.float.double.char.bool 组合数据类型:struct.en ...
- R语言用户自定义函数的语法结构、编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等)、编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据)、应用自定函数
R语言用户自定义函数的语法结构.编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等).编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据).应用自定函数 ...
- FPGA之道(40)HDL的语法结构
文章目录 前言 语法结构 省略与否请一致 范围方向请一致 端口声明请一致 参数声明请一致 映射方式请一致 代码缩进请一致 空格空行 注释编写 解释说明 段落分隔 代码保留 模块设计 确定好端口的顺序 ...
- python003 一 Python起步、pyhthon运行方式、语法结构、python变量
一,python起步 二,python运行方式 三,python语法结构 1,语句块缩进 2,注释及续行 (多行注释--ctrl+?) 3,同行多个语句 4,输出语句 print('Hello', ...
- PHP条件语句总结,PHP 条件语句基本语法结构
php中条件语句就if else与swicth及三目运算符了,下面我来给大家介绍这些条件语句的一些语法吧. if单分支的基本语法结构 if(条件表达式){ //执行语句; } if双分支 基本语法结构 ...
- PHP 数组遍历 foreach 语法结构
来源:http://www.cnblogs.com/keta/p/6117237.html foreach 语法结构用于遍历数组. foreach() PHP foreach() 语法结构用于遍历操作 ...
- Tcl与Design Compiler (二)——DC综合与Tcl语法结构概述
本文如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 1.逻辑综合的概述 synthesis = tra ...
- Shell的基本语法结构
Shell的基本语法结构 文章目录 Shell的基本语法结构 一.SHELL介绍 1. 编程语言分类 2. shell简介 3. shell脚本 二.变量的定义 1. 变量是什么? 2. 什么时候需要 ...
- php总结1 ——php简介、工作原理、运行环境、文件构成、语法结构、注释
1.1 PHP 超文本预处理程序.实际就是制作网站的脚本程序 1.2 运行环境: wamp--windowns+apache+mySQL+php 常用于开发.学习和研究 lamp --linu ...
最新文章
- 图灵访谈系列之一:陈世欣谈产品经理与社区
- Visual Studio 2005 SQL Server 2005 are COMING!
- Windows系统更新问题汇总(补充修改)
- HTML基础复习(三)表格
- centos 安装java1.7_centOs安装jdk1.7
- 【渝粤题库】广东开放大学 民事诉讼法学 形成性考核
- oracle存储sql片段引入_强大的跨数据库访问组件 UniDAC使用教程:注释和SQL函数...
- Android进阶:自定义视频播放器开发(下)
- api文档数据量太大崩溃_Tableau的API操作(一)-取消任务刷新
- 风格之争:Coroutine vs Callback
- Linux系统编程 -- 线程私有属性
- unity3d 射击游戏BOSS行为代码
- 让应用通过苹果审核出人头地的10个方法
- mysql必须记住的单词_如何真正记住英语单词?
- 无法打开html5,IE浏览器无法打开怎么办
- window7修改屏幕旋转快捷键
- CC++初学者编程教程(6) 配置WindowsXP虚拟机与VC6.0
- Unity Shader Interior mapping 内部映射
- stm32f103r8t6的晶振频率_STM32F103R8T6 中文资料
- 魔兽对战平台服务器更新维护什么,魔兽官方对战平台更新:公会系统正式上线!...
热门文章
- rs232接口_【涨知识】RS232接口与RS485究竟有什么区别?
- 计算机ppt制作实验报告总结,ppt实验报告心得体会[工作范文](18页)-原创力文档...
- UG\NX二次开发 显示所有图层上所有的对象
- android菜单的类型有几种,Android中的Menu(菜单)的三种类型菜单的学习
- ecshop数据库结构
- (已解决)关键词爬取百度搜索结果,返回百度安全验证,网络不给力,请稍后重试,无法请求到正确数据的问题(2023最新)
- 录入并打印名单python_Python如何使用字符打印照片
- 社会保障IC卡发卡方案
- CorelDRAW 快捷键全攻略(1)
- Apache Kylin 的预计算是怎么回事?