R语言系列:编程语法简介

控制结构:
    if () {}
    多条件选择,注意else的位置,如下:

    if () {
        } else if () {
        } else {
        }

    ifelse(test, yes, no)    #三目操作

    for (i in 1:n) {}
    while () {}
    break
    next

输出中间结果
    print(x)
    cat(x,"\n")    #注意"\n"的使用

向量化:
1、要充分利用R语言中向量运算的自动循环
    例:x=rnorm(10); y=runif(10); z=x+y;
2、使用apply对矩阵进行自动循环

程序引用:
    程序保存后可以使用source(“文件名”)进行调用
    注意:文件不在当前工作目录中时,要使用绝对路径。

编写函数(子程序):
    函数名 = function (参数列表) {}
    函数内的变量无需声明,仅在封装环境内起作用
    参数列表可设默认值
    返回值:默认语句块内最后一步,但建议使用return()返回。
    注意:return()应该是最后一句。
    注意:虽然本人喜欢把子程序放在程序主体后面,但R语言认为应该先定义子程序。

建立一个空变量及循环添加数据:
    a=NULL;    #建立一个类型为NULL,长度为0的变量
    for (i in 1:n) {a=c(a,i);}    #循环添加向量元素
    for (i in 1:n) {a=rbind(a, c(...));}    #逐行添加矩阵元素
    a=list(); for (i in 1:n) {a[[i]]=...;}    #逐个添加列表元素

将字符串转为变量名
    name='x';
    assign(name, 1:5);    #创建新变量并赋值,和x=1:5一样
    get('x');    #获取变量的内容,x可以是任意对象,包括列表、函数等
    get(name)    #也可以这样
    cat('x is: ', x, "\n")    #屏幕输出,比print好用

使用省略号传递参数的参数
    func=function(x,y,...) {print(y(x,...));}
    func(0.5,punif);
    func(0.5,pbeta,2,1);

将文本转为表达式并求值
    x=1:10;
    temp='x[1:5]';
    eval(parse(text=temp))    #parse将文本转为表达式,eval求值

附:
循环利用数据索引时,使用seq比1:length(x)更好,因为length(x)可能取0
    for (i in seq(x)) {if (i %% 100 == 0) {print(i);};}

程序暂停
    Sys.sleep(time)

转载于:https://my.oschina.net/explore/blog/84965

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值