R语言可以执行向量之间的运算,分析的是整个数据集。
一、怎么创建向量呢?
创建向量通常用冒号运算符:能创建一个从某个数值开始到另一个数值结束的序列
而c函数则会把一系列的值给拼接起来创建向量
PS:c是concatenate的首字母,这又是一个拉丁词汇,意思是“把所有东西连接到一起”
eg:1:5+6:10 #look,no loops!
c(1,3,6,10,15)
二、R向量化
含义一:运算符或函数可以作用于向量中的每个元素,所以无需显式编写循环语句
含义二:当一个函数把一个向量作为输入时,能计算汇总统计
eg:sum(1:5) 运行的结果就是 15
含义三:参数的向量化(具体的暂时还不明白 TVT)
三、在R中,所有的算术运算符都是向量化的,以下是各种示例:
c(2,3,5,7,11,13) - 2 #减法
-2:2 * -2:2 #乘法
identical(2^3,2**3) #这两个运算符都代表求幂 返回值是 TRUE
1:10/3 #浮点除数法
1:10%/% #整数除法1:10%%3 #余数
四、比较运算
同样也是向量化的整数值是否相等用的是== 而非=
检查是否不等用的是 !=
大于则用 > 小于用<
如果有可能相当则用 >= 或 <=
eg:c(3,4-1,1+1+1)==3
##[1] TRUE TRUE TRUE
PS:非整型数不适合用==进行比较,因为数据处理用的是浮点数型,==适合用来比较字符串
五、all.equal函数用于检查数字是否相等如果比较的值不一样,all.equal返回时会报告差值如果只需要返回TRUE或FALSE,则应当把all.equal嵌入isTRUE函数中调用
eg:all.equal(sqrt(2)^2,3)
##[1] "Mean relative difference:0.5"
isTRUE(all.equal(sqrt(2)^2,3))
##[1]FALSE
六、变量赋值在R中不需要声明变量,<- 或者 = 就实现对本地变量赋值
命名的细节可以参考 ?make.names
全局变量赋值可以使用 <<- 还可以用assign函数进行赋值, 想用全局变量就加上globalenv这个参数eg:
assign("my_global_variable , 3 , globalenv())
PS:与<-相比,assign函数会使代码可读性变差,需要谨慎使用
七、特殊数字
Inf 正无穷
-Inf 负无穷
NaN 是指计算或没有数学意义,或无法正确执行,not a number
NA 是代表缺失值, not available
八、逻辑向量
R中的逻辑值除了TRUE和FALSE,还有缺失值NA,拥有这三种状态的系统被称为troolean逻辑。
!非 &与 |非
(x<-1:10>=5)
## [1] F F F F T T T T T T
两个比较有用处理逻辑向量的函数 any 和 all ,字面意思即可理解。