R语言系列:编程语法简介
博客专区 > explore 的博客 > 博客详情
R语言系列:编程语法简介
explore 发表于6年前
R语言系列:编程语法简介
  • 发表于 6年前
  • 阅读 1125
  • 收藏 2
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

控制结构:
    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)

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 12
博文 60
码字总数 34239
×
explore
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: