getwd()#显示工作目录
setwd("D:/RStudio-1.4.1106/R-Data/向量")#设置工作目录,R中为正斜线/
list.files()#显示工作目录下的文件夹
character(0)
#保存工作空间到R.Data文件
#一——直接创建向量
#一串数字,等差数列
a<-1:100
a
#某个确定值
b<-1128
b
#逻辑型向量,TRUE或者FALSE
c<-TRUE
c
#字符串型向量
d<-"天津"
d
#二——使用c()函数创建
#直接赋值
a<-c(1,2,3,4,5)
a
b<-c(1:10)
b
#逻辑型
d<-c(TRUE,TRUE,FALSE)
d
#字符型
e<-c("北京市","天津市","深圳市")
e
#空白向量
f<-c()
f
#c函数()内为同种向量,不能既有字符又有数值
g<-c(1,2,'甘肃')#否则会数值强制转换成字符型“数值”
g
#三——使用seq函数生成等差数列向量
#seq(from=1,to=1,by=((to-from)/(length.out-1)),length.out=NULL,along.with=NULL,...)
#from,to,by可为任意实数,未指定情况下,三者默认为1
a<-seq(1,10,2)
a
#未指定步长,由 终-初/length.out-1
b<-seq(1,10,length.out=11)
b
a<-seq(1,by=3,length.out=5)
a
b<-seq(1,by=6,along.with=a)
b
a<-seq(1,by=3,length.out=6)
a
d<-seq(1,20,length.out=11,along.with=a)
d
#四——使用rep函数创建重复序列的向量
rep(x,times=1,length.out=Na,each=1)
#x为重复的序列对象,times为重复次数,length.out为产生的向量长度,默认NA无限制,each为每个元素重复的次数,默认为1.
#优先级:length.out-each-times
a<-rep(c(2,3),c(2,3))
a
b<-rep(c(2,3,4),each=3,length.out=5)
b
d<-rep(c(2,3,4),times=3,length.out=5)
d
e<-rep(c(2,3,4),times=3,each=2)
e
f<-rep(c(1,2,3),c(3,2,1))
f
#以下不行,times 参数不对
g<-rep(c(1,2),c(2,3,1))
g
h<-rep(c(1,2,3),c(1,3))
h
#五——向量命名
score<-c(11,22,33,44)
NAME<-c("张三","李四","王五","赵六")
names(score)<-NAME
score
#以下不行
x<-c(11,22,33,44)
names(x)<c("张三","李四","王五","赵六")
x
#六——向量的引用
#[]方括号的应用
vc<-c(11,22,33,44,55,66)
vc[1]#提取第一个元素值
vc[1:3]#提取1~3个元素值
vc[c(2,4,5)]#提取第2、4、5个元素值
vc[109]#无第109个元素值,故为NA
#这种不行 vc[3,5],引用多个必须把这几个组成向量c(3,5)
#在前面加-号,意为引用除-号后面几个的元素值(删除式的数据提取)
vc[-c(1,2,6)]
#2.使用逻辑向量进行引用
a<-c(12,23,34,45,56,67)
l<-c(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE)
a[l]
#此时l长度与a不匹配,l就会开始重复,如4个时再重复前两个
a<-c(12,23,34,45,56,67)
l2<-c(TRUE,FALSE)
a[l2]
a<-c(12,23,34,45,56,67)
l3<-c(FALSE,TRUE,FALSE)
a[l3]
a<-c(12,23,34,45,56,67)
l4<-c(FALSE,FALSE,TRUE,FALSE)
a[l4]
#3.使用名字来访问向量
a<-c(12,23,34,45,56,67)
myName<-c("Jack",'Alice',"Tom",'Peter','Park','Trump')
names(a)<-myName
a
#如上,双引号和单引号区别不大,同一个向量里面可以一个元素用双引,一个用单引。
a[c('Trump','Alice',"Jack")]
#It can be used to sort.(排序)访问顺序决定显示顺序
#4.使用which函数进行筛选
a<-c(12,23,34,45,56,67)
a==12
which(a==12|a==34)
a[a==12]
#a==输出一串逻辑字符,再用a[]引用,则输出对应数值,而which则输出逻辑字符中对应TRUE的位置
#双等号表示是否相等,竖线|表示或者,&表示与
which(a<44|a>11)
which(a>11&a<44)
a<50|a>13
a<50&a>13
a[which(a>45|a<20)]
#which.max/min(a)来访问最大/最小值的位置,输出数值用a[which]
#5.使用subset函数索引
subset(a,c(TRUE,FALSE,FALSE))
#逻辑向量通过重复自动补齐
subset(a,a>11&a<55)
#向量的编辑
#1.扩展向量
#使用c,连接两个向量、创建一个向量
a<-c(1:6,7:10)
b<-c("定西")
c<-c(a,b)
c
#append函数 追加某个元素、连接两个向量、在指定位置添加向量
append(a,b)
#此时a仍为a,b仍为b,如需改变,则a<-append(a,b)
append(a,"定西",3)
#在a中第3个(第三位参数表示位置)位置后面添加定西(第二个参数表示插入值)
append(a,"定西",0)
#2.改变元素的值
a[1:3]<-111
a
a[1:3]<-c(111,222,333)
a
a[a>7]<-6
a
#删除元素值
a<-1:4
a<-a[-2]
a
a<-a[-(1:3)]
a
一些R基础知识的练习保存,以便后续自己查阅