一、R语言的对象
1.定义:所有在R语言中可操作的各种数据及表达式.(object)
对象的命名规则:
1.必须是字母开头,只可以是字母,数字,(.),(_)
2.区分大小写
3.避免使用pi,if,for等既有对象名
2.对象的产生和查询
(1)ls() 返回所有内存中的对象名
ls(pat="b") 返回所有对象名中包含b的对象名
ls.str() 返回所有对象的具体信息
a<-“Alice”
b<-“Bob”
c<-“Charlie”
ls()
[1] “a” “b” “c” “height” “x” “x1” “x2” “y”
ls.str()
a : chr “Alice”
b : chr “Bob”
c : chr “Charlie”
height : num [1:4] 162 180 170 168
x : num [1:4] -1 0 1 2
x1 : int [1:4] -1 0 1 2
x2 : num [1:101] 0 0.0628 0.1257 0.1885 0.2513 …
y : num [1:4] 0.276 1 7.53 54.062
(2)删除对象
rm(对象名)/remove(对象名)
rm(list=ls(pat=“x”,all.names=TRUE)) 删除所有含名字中含x的对象
(all.names=FALSE表示不显示以.开头的这种特殊对象)
3.对象的基本属性
(1)对象的类型/属性(mode):
数值型(Numeric)
字符型(Character)
逻辑性(Logical)
因子型(Factor):类别/分类(男/女)
复数型(Complex): 1+2i
字符型对象
fruit<-c(“apple”,“pear”,“banana”)
mode(fruit) 查看对象类型
[1] “character”
length(fruit) 查看对象长度
[1] 3
因子型对象
gl(2,5) #新建一个因子
[1] 1 1 1 1 1 2 2 2 2 2
Levels: 1 2
class(gl(2,5)) #查看变量的类,显示为因子;
[1] “factor”
mode(gl(2,5)) #查看数据大类,显示为数值型;
[1] “numeric”
typeof(gl(2,5)) #查看数据细类,显示为整数型;
[1] “integer”
二、数据的创建
矩阵要求每一个element类型相同,数据框/列表可以有不同数据类型
向量
2.1 基本运算
乘方(^)
乘法(*)
除法(/)
整除(%/%)
余数(%%)
2.2 数据对象
特殊变量
判别与转换数据对象
判别 转换
2.3向量的赋值及基本操作
x<-c(1,2,3,4) 方法1
assign(“y”,c(“a”,“b”,“c”)) 方法2
z<-c(x,y)
z
[1] “1” “2” “3” “4” “a” “b” “c”
产生有规律的向量:
a.等差向量(步长为1/-1):
运算优先级:^>1:10>*
b.等间隔函数
length.out表示分割点数;along.with=p表示分割点数和p一样
c .重复函数
a<-rep(1:3,times=4,each=3)
a
[1] 1 1 1 2 2 2 3 3 3 1 1 1 2 2 2 3 3 3 1 1 1 2 2 2 3 3 3 1 1 1 2 2 2 3 3 3
a<-rep(1:3,times=4,each=3,length.out=5)
a
[1] 1 1 1 2 2
逻辑运算
z<-logical(5)初始化逻辑向量(相当于建立一个逻辑向量,默认值为False,5为维数)
缺失数据
z[is.na(z)]<-7 将z中的缺失值用7填充
数值向量的简单运算
x<-c(1,2,3,4,5)
prod(x)
[1] 120
min(x)
[1] 1
which.min(x)
[1] 1
range(x)
[1] 1 5
mean(x)
[1] 3
median(x)
[1] 3
var(x)#方差
[1] 2.5
std(x)#标准差
Error in std(x) : 没有"std"这个函数
sd(x)#标准差
[1] 1.581139
字符串向量
str()
string()
paste()
paste0(“a”,1:4):生成a1,a2,a3,a4
x<-paste(c(“x”,“y”),1:5,sep="!")
x
[1] “x!1” “y!2” “x!3” “y!4” “x!5”
因子向量
factor函数:将向量转化为因子
gl()生成向量的函数
n:因子个数
k:每个因子的重复个数
labels=1:n,labels一定要等于levels的个数不然会报错
length可以不等于nk,if > nk则会循环
gl(4,2,length=8,labels=paste0(“a”,1:4))
[1] a1 a1 a2 a2 a3 a3 a4 a4
Levels: a1 a2 a3 a4
与因子有关的函数
数值向量
sequence(1:6)
[1] 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5
numeric(n)生成长度为n的0向量
随机序列的生成
逻辑向量
循环补齐
向量索引
which(z>=10|z<=6) 或
which(z>=10&z<=6) 并且
which()返回索引
向量索引
向量筛选
z[z>5] 筛选出z中大于5的所有元素,自动包含NA
subset(z,z>5)自动删除NA
a %in%c (1,3,6) :看azhong的每个分量是否包含在之后的向量中
这个地方没有看明白: