R中的变量可以存储任何数据类型,也可以存放任何R对象,例如函数、分析的结果以及一个图形。单个变量在某时刻取值为一个数字,而后可以被赋值为字符,再而后又可以被赋值为一个数字。
对一个变量进行赋值有许多方式,而且不受所赋值的类型限制。
有效的赋值操作符是<- 和 =,更倾向于前者,但在函数参数中要用=,而不能使用<-
x <- 2 x [1] 2 y = 5 y [1] 5
这里的箭头操作符也可以指向另一方向,如下所示。
3 <- z z [1] 3
这个赋值运算可连续地同时把一个值赋给多个变量。
a <- b <- 7 a [1] 7
一个更麻烦费劲的赋值方式是使用assign函数,但是有时是必要的。
assign("j",4) j [1] 4
R中有许多数据类型来存储各种各样的数据。最经常用到的4种主要数据类型是数值型(numeric)、字符型(character)(字符串)、日期型(Date)或POSIXct(基于日期的)、逻辑型(logical)(TRUE或FALSE)。变量中所存储的数据类型可以用class函数查看。
字符是区分大小写的,所以“Data”不同于“data”和“DATA”。想要得到字符(或数值)的长度,使用nchar函数。
nchar("hello") [1] 5 nchar(3) [1] 1 nchar(452) [1]3
这对因子型(factor)数据是不起作用的。
逻辑型
R中简写的T和F分别代替TRUE和FALSE,但是在实际应用中最好不要用简写,因为它们只是储存TRUE和FALSE的简单变量,其可以被重新赋值,这将会导致很多麻烦和错误。
向量
最常用的创建向量的方式是用c。这个c代表着合并(combine),因为许多元素被合并为一个向量。
x <- c(1,2,3,4,5,6,7,8,9,10) x [1] 1 2 3 4 5 6 7 8 9 10
向量的运算具有广播的性质,length函数可以返回向量的大小。为了检查是否所有元素都是TRUE,可以用all函数。类似的,any函数可以检查所有元素中是否存在TRUE。
缺失数据
在统计和计算中,缺失数据起着至关重要的作用,R有两种缺失数据的类型,NA和NULL。对于NA,通常由于许多原因,我们所得到的数据是有缺失的。R中使用NA来代替缺失数据。NULL是没有任何东西。它不算准确的缺失,而是空白。函数有时会返回NULL,其参数也可以是NULL。NA和NULL一个重要的区别是,NULL是最小的“原子”,其不能存在于向量中。如果在向量中使用,其自然就消失了。