文档章节

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

explore
 explore
发布于 2012/10/25 10:34
字数 521
阅读 1186
收藏 2

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

© 著作权归作者所有

共有 人打赏支持
explore
粉丝 13
博文 60
码字总数 34421
作品 0
太原
私信 提问
R语言入门 – 什么是R语言,为什么选择R语言用于机器学习或数据挖掘

  R语言最近在TIOBE排名上取得了不小的进步,上升到了第13名。因为机器学习的火爆的程度和R语言特殊的语法,使得它的关注度越来越高。好多人对于R语言的特性和语法不太了解,而因我在上学的...

全栈开发
2018/03/06
0
0
OSC 第 91 期高手问答 — R 语言的核心技术

OSCHINA 本期高手问答 ( 9月16日- 9月22日 ) 我们请来了《R的极客理想 高级开发篇》的作者@bsspirit (张丹)为大家解答关于 R 语言的核心技术的问题。 张丹,@bsspirit ,R语言资深用户,系...

叶秀兰
2015/09/16
5.4K
46
R语言可视化学习笔记之相关矩阵可视化包ggcorrplot

基于ggplot2包以及corrplot包的相关矩阵可视化包ggcorrplot,ggcorrplot包提供对相关矩阵重排序以及在相关图中展示显著性水平的方法,同时也能计算相关性p-value 安装方法就不提了,不懂的可...

R语言中文社区
2018/01/25
0
0
谈谈R中的乱码(三)

前面讲过,R 中字符向量可以有多种编码。一般情况下,对于混合编码,R 都能很好的自动处理。例如: x1 <- '中国'x2 <- iconv(x1, 'GB2312', 'UTF-8') == 判断也没问题 x2 == '中国' [1] TRU......

R语言中文社区
2018/02/08
0
0
Rserve与Java的跨平台通信

R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大。 R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到大数据的爆发,R语言...

zh119893
2014/04/20
0
2

没有更多内容

加载失败,请刷新页面

加载更多

CSS 选择器参考手册

CSS 选择器参考手册 选择器 描述 [attribute] 用于选取带有指定属性的元素。 [attribute=value] 用于选取带有指定属性和值的元素。 [attribute~=value] 用于选取属性值中包含指定词汇的元素。...

Jack088
今天
1
0
数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
今天
2
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
3
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
2
0
深入理解JVM—JVM内存模型

深入理解JVM—JVM内存模型 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存...

onedotdot
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部