R 的赋值方式:
> x <- 5 + 7
创建向量的方式
> z <- c(1.1, 9, 3.14)
帮助函数的调用 比如你想了解某个函数的用法,可以使用
> ?c
就会调出
c
函数的用法。向量乘法,加法,除法,减法
> z*2+100 # 102.20 118.00 106.28 > my_sqrt <- sqrt(z - 1) # 0.3162278 2.8284271 1.4628739 > my_div <- z / my_sqrt # 3.478505 3.181981 2.146460
与python相似。
z*2+100
等价于z * c(2, 2, 2) + c(100, 100, 100)
。
但是与python的区别是,维度不一致的时候,依然可以相加,这里在R中叫做recycling。> c(1, 2, 3, 4) + c(0, 10) # 1 12 3 14
等价于
c(1, 2, 3, 4) + c(0, 10, 0, 10)
两个向量相加,R会自动用短的向量来补齐,循环再利用,直至和长的向量保持一致。所以在z*2
中补2,补到和z
维度一致为止。在python中,z*2
可以得到结果,使用的是broadcast操作,但是c(1, 2, 3, 4) + c(0, 10)
的操作就python中是不可以的,因为一个(4,)
和(2,)
无法broadcast。
但是仍有一个问题,当短向量长度无法被长向量整除时,比如> c(1, 2, 3, 4) + c(0, 10, 100) # 1 12 103 4
此时R会给出一个warning message
arning message: In c(1, 2, 3, 4) + c(0, 10, 100) : longer object length is not a multiple of shorter object length
但是这仍然会返回一个结果,后面无法整除的长度的那些元素不做任何操作。
补充 在大部分IDE中,都有tab键自动补齐的功能