R语言编程语法

一、基本的概念

语句(statement):一条单独的R语句或一组复合语句(包含在{}中的一组R语句,使用分号分割);

条件(cond):一条最终被解析为真或者假的表达式;

表达式(expr):一条数据或字符串的求职语句;

序列(seq):一个数值或字符串的求值语句。

二、R语言之控制结构 

2.1 循环结构

2.1.1 for结构

语法: for (var in seq){statement1;satement2;...}

说明:直到变量值不再包含在序列中为止

 1 > n<-0
 2 > for (i in seq(1:7)){
 3 + n = n+y[i]*f[i]
 4 + print(n)
 5 + }
 6 #输出
 7 [1] 0
 8 [1] 34
 9 [1] 82
10 [1] 130
11 [1] 142
12 [1] 147
13 [1] 159

2.1.2 while结构

语法:

    i <- seq #(初始化值)

    while(cond(i)){statement1;statement2;...}

 1 > i <- 10
 2 > while(i>0){
 3 + i = i - 1
 4 + print(i)
 5 + }
 6 #输出
 7 [1] 9
 8 [1] 8
 9 [1] 7
10 [1] 6
11 [1] 5
12 [1] 4
13 [1] 3
14 [1] 2
15 [1] 1
16 [1] 0

2.2 条件语句

2.2.1 if-else结构

语法:

if (cond){statement1;statement2;...}

if (cond){statement1;statement2;...}else{statement3;statement4;...}

说明:

如果cond为真,则执行第一个{}中的语句,否则执行else之后{}中的语句(如果else存在的情况下)。

1 > a<-10;b<-9;c<-8
2 > if(a<b){
3 + print('hello')
4 + }else{
5 + print('R')
6 + }
7 #输出
8 [1] "R"

2.2.2 ifelse结构

语法:

ifelse(cond, statement1, statement2)

说明:

如果cond为真,则执行statement1,否则执行statement2

1 > ifelse(b>c, print('hello'),print('R'))
2 #输出
3 [1] "hello"

三、函数

语法:变量名 = function(变量列表){函数体}

myfunction <- function(arg1, arg2, ...){

statements

return(object)

}

说明:

1.  function(){}创建函数;

2. 函数的调用方式,在变量名后面加上小括号'()',如myfunction(arg1, arg2, ...);

3. 函数的调用与其参数的位置和名字有关,可以按位置调用,按名字调用,也可设置默认参数;

4. 函数是一个‘闭包’,只在函数参数和函数体中定义的变量,且在定义函数之前未定义过该变量时,这些变量都是专属于该函数的局部变量。当函数运行结束后,这些变量也自动消失,不能在后续的分析中调用,也不会引起命名冲突。我们可是使用超赋值符号“ <<-”,将局部变量改变为全局变量,供后续分析。

5. 延伸:在R语言中,{statement1;statement2; ...}定义了一个闭包,在该闭包中的变量都是一种局部变量,一旦执行结束,这些变量也将消失。如果要在后续分析中继续使用,则使用超值赋值符号。同时,这些变量名也不会引起命名冲突。

 

posted on 2016-10-27 22:11  萧飞IDO  阅读(695)  评论(0编辑  收藏  举报

导航