getwd()
setwd(“C:/Users/chunbaizhi/R106/R”)
#目录/修改目录
install.packages(“stringr”)
#安包
remove.packages(“stringr”)
#删包
library()
#查看全部包
.libPaths()
#查看包下载位置
library(“stringr”)
#调包
search()
#查看调的包
detach(“package:stringr”)
#取消调用
#赋值使用 <-
#NA(缺失值),用来替补所有应有数据位置的值
#Null(空值), 不会被视为一个值(如计算向量长度时不计算在内)
#NaN,无意义的值(如0/0),会被视为一个值
#逻辑运算符 例如:&(与,正常判断符) &&(与,只判断第一个元素)等等
#向量
a <- c(2,3,4)#一个三元素向量,向量元素下标是从1开始的,可重复访问,可不连续访问
a[1]
seq(1,9,by=2)#创建一个1到9的等差数列,公差为2
rep(a,3)#创建一个复制重复向量的向量
new.a <- c()#创建空向量
a
a <- c()#似乎没区别
a
A = sample(c(17,18,19),10,replace=T);A#随机函数,创建值为17,18,19的10个数字,T,可以重复取值
A = sample(c(17,18,19),10,replace=F);A
all(A>18)#对向量所有元素进行判断
A>18
a <- matrix(1:18,nrow=2)#把向量按照规律变换成矩阵,行数*列数等于向量元素总数(优先列排排)
a
a <- matrix(1:18,nrow=3)
a
a <- a[,2]#切片[行,列]
a
a[a%%3==0 & a>5]
a[2,3]
a <- matrix(1:18,nrow=2)#把向量按照规律变换成矩阵,行数*列数等于向量元素总数(优先列排排)
a
a <- matrix(1:18,nrow=3)
a
a <- a[,2]#切片[行,列]
a
#应用:修改图片 package:pixmap
library(pixmap)
p<-read.pgm(“python.pgm”)
p#使用矩阵图片
plot§
str§
p2 <-p
p2@grey[80:103,10:60] <-1
plot(p2)
#矩阵的行列操作(1,行。2,列)
apply(a,1,max)
apply(a,2,max)
a <- matrix(1:12, nrow = 3)
a
b <- matrix(21:26, nrow = 3)
b
cbind(a,b)
rbind(a,b)
b <- matrix(21:24,nrow = 1)
b
rbind(a,b)
#数组,dim的(2,3,2)指2行3列2组
a <- matrix(sample(90:100,6 ,replace=F),nrow=2)
b <- matrix(sample(90:100,6 ,replace=F),nrow=2)
a;b
c <- array(data=c(a,b),dim=c(2,3,2))
c
attributes©#查看维度
#列表
list <- list(name=“gegege”,id=1001, is.past.exam=T)
list
list2 <- list(“gegege”,1001,T)#可以不加标签
list2
list <- list(name=c(“gegege”,“gagaga”),id=1001, is.past.exam=T)
list
new <- vector(mode=“list”)#创建一个空列表
new
c(a,b)#拼接列表
list<-list(a,b)#列表的元素可以是列表
#对每个元素进行操作
data <- list(1:10,101:110)
data
lapply(data,max)
sapply(data,max)
#列表转向量
c <- unlist(a)
#数据框(建表)
a.name<-c(“xiaoming”,“xiaohong”)
a.id <- c(1001,1002)
a.info <- data.frame(a.name,a.id)
a.info
str(a.info)
#添加一列
a.infoKaTeX parse error: Expected 'EOF', got '#' at position 23: …(17,18) a.info #̲查询 a.info[which…age>=18),]
a.info[a.info$age>=18,]
#矩阵转数据框
mat <- matrix(1:12,nrow=3)
mat
mat.df <- as.data.frame(mat)
mat.df
#merge 根据值拼接列表
a.id.math <- c(1001,1003)
a.math.score <- c(89,90)
a.math.df <- data.frame(a.id.math,a.math.score)
a.math.df
a.info
merge(a.info,a.math.df, by.x=“a.id”,by.y=“a.id.math”)
#因子(指去重后的元素)
sex <- c(1,2)
sex
sex.f <- factor(sex)
sex.f
str(sex.f)
stu.sex <- sample(1:2,10,replace = T); stu.sex
stu.sex.f<-factor(stu.sex); stu.sex.f
stu.sex.f<- factor(stu.sex, levels = c(1,2));stu.sex.f
stu.sex.f<- factor(stu.sex,levels = c(1,2),labels = c(“T”,“F”));stu.sex.f
stu.sex.v<- as.vector(stu.sex.f);stu.sex.v
#有序因子
stu.sex.ord <- ordered(stu.sex,levels = c(1,2));stu.sex.ord
stu.sex.ord <- ordered(stu.sex,levels = c(2,1));stu.sex.ord
#cut函数(因子也可以是一个范围,breaks是因子的总数量,四个)
stu.r.score <- c(60,sample(60:100,8,replace = T),100);stu.r.score
stu.r.score.level <- cut(stu.r.score,breaks = 4);stu.r.score.level
#tapply()函数
tapply(stu.r.score,stu.sex, mean)