1.内置数据集
R中的内置数据集存储在datasets这个包中,这些数据一般搜集于真实的调查数据。
help(package=“datasets”):查看数据集包。
data():列出所有数据集。
直接输入数据集名字,就可以使用该数据集。这些内置数据集的名字都是默认的,我们在创建变量的时候最好不要与内置数据集的名字重叠。
2.数据结构
R中的数据类型
R对象:
object,它是指可以赋值给变量的任何事物,包括常量、数据结构、函数,甚至图形。对象都拥有某种模式,描述了此对象是如何存储的,以及某个类。R中的数据结构:
3.向量
向量其实是用于存储数值型、字符型或逻辑型数据的一维数组。
用函数c来创建向量。c代表concatenate连接,也可以理解为收集collect,或者合并combine。
如:
x<-c(1,2,3,4,5)
y<-c(“one”,“two”,“three”)
z<-c(TRUE,T,F)
注意:一个向量中所有数值的数据类型都必须是同一类型。
seq(from=1,to=100,by=2):生成1到100的公差为2的序列。
seq(from=1,to=100,length.out=10):生成1到100之间的10个数。
rep(x,5):将x变量的值重复5次。x<-c(1,2,3,4,5)
y<-c(6,7,8,9,10)
向量相加:x*2+y
输出向量x中值大于3的数值: x[x>3]
控制向量x中每个数的重复次数:rep(x,c(2,4,6,1,3))
4.向量索引
(1)正负整数索引
x<-c(1:100)
x[1]:返回x向量中的第1个值。
x[-19]:输出除了第19个元素之外的所有元素。
x[c(4:18)]:输出第4到18个元素。
x[c(1,23,45)]:输出第1、23、45个元素。
注意:不能同时有正负索引。
(2)逻辑向量索引
y<-c(1:10)
y[c(T,F,T,T,F,F,T,T,T,F)]:输出逻辑值为真的元素。(结果为1 3 4 7 8 9)
y[c(T)]:所有元素为真,输出所有元素。
y[c(T,F)]:按照T,F循环判断输出。结果为(1 3 5 7 9)
注意:如果有11个逻辑值,那么多出的部分会显示NA 。
y[y>5 & y<9]:输出向量y中大于5小于9的元素。(结果为6 7 8)z<-c(“one”,“two”,“three”,“four”,“five”)
%in%:表示元素是否在向量中。
如:
“one” %in% z:返回TRUE。
z %in% c(“one”,“two”):判断z中元素是否在向量(“one”,“two”)中。(返回TRUE
TRUE FALSE FALSE FALSE)
(3)名称索引
可以使用names函数为向量的每个元素添加名称。
如:
y<-c(1:10)
names(y)<-c(“one”,“two”,“three”,“four”,“five”,“six”,“seven”,“eight”,“nine”,“ten”)
输出y的结果为:
输出的y有两行,一行是元素名称,称为属性;一行是元素值,称为value。可以通过每个元素的name访问它的值。
如:
y[“two”]:输出对应的值2。向量修改:
v<-1:3
v[c(4,5,6)]<-c(4,5,6)
v[20]<-4
append(x=v,values=99,after=5):在元素5和6之间插入一个值99。
append(x=v,values=99,after=0):在向量头部插入数据99。
y<-y[-c(1:3)]:删除向量中第1到3的元素。
5.向量运算
(1)两向量长度相等
**:乘幂运算
%%:求余运算
%/%:整除运算
(2)两向量长度不相等
长向量的长度必须是短向量长度的整倍数,否则,报错。运算时短向量被循环使用。
(3)向量的逻辑运算
==:一一判断两个向量的元素是否相等。
%in%:判断左边向量的元素是否在右边向量中。
(4)向量运算函数
数学函数:
x <- c(1:6)
y <- c(-2.13,3.1415)
abs(x):返回向量x的绝对值。
sqrt(x):取平方根。
log(x,base=2):取对数,base为底数。不加底数,默认为自然对数。
常见的以10为底的对数直接写log10(x)。
exp(x):计算以自然常数e为底的指数。
ceiling(y):不小于y的最小整数。
floor(y):不大于y的最小整数。
trunc(y):返回整数部分。
round(y,digits=2):四舍五入,digits表示要保留的小数位数。默认取整。
signif(y,digits=2):四舍五入,保留有效数字,digits表示保留的有效数字位数。
sin(x):求正弦。
cos(x):求余弦。
统计函数:
vec <- 1:100
sum(vec):求和。
max(vec):求最大值。
min(vec):求最小值。
range(vec):返回最小值和最大值。
mean(vec):返回均值。
var(vec):返回向量方差。
sd(vec):返回向量的标准差。
prod(vec):返回向量连乘的积。
median(vec):计算中位数。
quantile(vec):计算分位数。有时候不仅关注向量中的值,还关注向量中的位置,也就是索引值,这时候可以时候which系列的函数,其返回的不是具体值,而是索引值:
t <- c(1,4,2,5,7,9,6)
which.max(t):返回最大值的索引值。
which.min(t):返回最小值的索引值。
which(t==7):返回t向量中值为7的元素的索引值。