• R学习-1.Basic Building Blocks


    Basic Building Blocks

    R可以作为一个交互式计算器,在R的控制台里输入算术表达式, R会计算出它的结果。

    > 5+7
    [1] 12
    > 5+7*10
    [1] 75
    

    我们可以将表达式的值临时保存在一个变量里,这称之为赋值,在R编程语言里是通过符号<-来进行赋值的。已赋值的变量可以在其它表达式中使用。可以通过在控制台输入变量名来知晓当前变量存储的值是什么。一个变量可以进行多次赋值,但变量代表的值也会因此改变。

    > x <- 5 + 7
    > x
    [1] 12
    > y <- x - 2
    > y
    [1] 10
    > x <- y
    > x
    [1] 10
    

    在R中,任意一个包含/存储数据的对象被称为数据结构,而数值向量(vector)是最简单的一种数据结构。函数c()用于创造一个向量,其中'c'表示'combine', 表示将函数的传入参数组合而构成一个向量(vector)c()的传入参数也可以是一个向量。

    > z <- c(1.1, 9, 3.14)
    > z
    [1] 1.10 9.00 3.14
    > c(z, 555, z)
    [1]   1.10   9.00   3.14 555.00   1.10   9.00   3.14
    

    向量中元素数量被称为长度,比如c(1,2,1)的长度为3。向量之间也可以进行算术运算。

    如果两个向量的长度相同,则向量之间对应的元素进行算术运算,然后运算结果组成新的向量。

    > c(1,2,3) + c(1,1,1)
    [1] 2 3 4
    > c(1,2,3) * c(1,2,3)
    [1] 1 4 9
    

    对于不同长度的向量运算,则是把长度短的向量进行循环补齐。然后进行运算。若两个向量的长度不成倍数关系的话,R会给出警告。

    > c(1,2,3,4) + c(0,10) # c(1,2,3,4) + c(0,10,0,10)
    [1]  1 12  3 14
    > c(1,2,3,4) + c(0,10,100) # c(1,2,3,4)+c(0,10,100,0)
    [1]   1  12 103   4
    Warning message:
    In c(1, 2, 3, 4) + c(0, 10, 100) :
      longer object length is not a multiple of shorter object length
    

    若向量与常数之间进行算术运算,向量中的每个元素都将与常数进行运算,然后结果组合成新的向量。若是仅对向量自身进行数学运算操作,如进行求绝对值(abs),求sin值等,也是对向量中的每个元素都进行运算操作。

    > sin(c(10, 20 ,30))
    [1] -0.5440211  0.9129453 -0.9880316
    > c(1, 2, 3) * 2
    [1] 2 4 6
    > abs(c(-1, 5, -10))
    [1]  1  5 10
    > sqrt(abs(c(-1, 5, -10)) - 1)
    [1] 0 2 3
    

    实际上,对于单个数值,我们也可以将其看作一个长度为1的向量。

    > c(1, 2, 3) + 1 # c(1, 2, 3) + c(1, 1, 1)
    [1] 2 3 4
    

    有用的技巧

    在R里是内置许多函数帮助文档的,可以通过?命令进行查询,使用方法是?+函数名。比如要查询函数c()的帮助文档,在控制台输入?c后回车后,就会返回c()的帮助文档。

    在控制台或终端,点击按键上箭头,可以循环返回之前运行的命令。这在需要重复执行先前的命令,或想修改之前命令时,很方便。

    使用Tab可以补全函数名或变量名,在输入前两三个字母时,使用Tab可以将剩余字母补全,或者给出符合条件的名字。这也是非常有用的一个功能,节省输入时间,帮助记忆名字,提高编程速度。

    下一节:!R学习-2.Workspace and Files

  • 相关阅读:
    java数据库连接池
    TCP长连接服务的Java实现
    一种简单JDBC数据库连接池的实现
    ProFtpd快速指南
    vsftpd安装
    IIS启动失败【发生意外错误 0x8ffe2740】解决办法
    eclipse+myeclipse+tomcat配置web开发
    数据库连接池技术浅析
    论JSP数据库连接池的必要性
    ProFTPD使用
  • 原文地址:https://www.cnblogs.com/huanping/p/13085932.html
Copyright © 2020-2023  润新知