#快捷键查询 alt shift k # 赋值 快捷键alt - x <- 3 #强赋值给全局变量<<- x <<- 3 #求和 sum(1,2,3,4,5) #平均值,mean第一个参数的平均值 mean(1,2,3,4,5) mean(c(1,2,3,4,5)) #查看已定义的变量 ls() ls.str() #查看单个变量的详细信息 str(x) # ls(all.names = TRUE) #删除不必要的变量或其值 rm(x) #删除多个 rm(a,b,x1,mtcars) #删除所有 rm(list = ls()) #清屏 Ctrl L #保存 save.image()
#在菜单栏直接打开help
#使用help函数
help.start()
#常用功能package Search Engine
#查询特定函数
help(sum)
?plot
#查询函数参数
args(plot)
#使用example来查看函数功能效果
Speed <- cars$speed
Distance <- cars$dist
plot(Speed, Distance, panel.first = grid(8, 8),
pch = 0, cex = 1.2, col = "blue")
plot(Speed, Distance,
panel.first = lines(stats::lowess(Speed, Distance), lty = "dashed"),
pch = 0, cex = 1.2, col = "blue")
x <- 0:12
y <- sin(pi/5 * x)
op <- par(mfrow = c(3,3), mar = .1+ c(2,2,3,1))
for (tp in c("p","l","b", "c","o","h", "s","S","n")) {
plot(y ~ x, type = tp, main = paste0("plot(*, type = \"", tp, "\")"))
if(tp == "S") {
lines(x, y, type = "s", col = "red", lty = 2)
mtext("lines(*, type = \"s\", ...)", col = "red", cex = 0.8)
}
}
par(op)
#也有example函数
example("plot")
example("hist")
#案例图
demo(graphics)
#查询某些包的帮助函数
help(package="ggplot2")
#更规范的查询(不是所有包都有该文档)
vignette()
#使用对应的文档需要事先载入包
library("vcd")
help("vcd")
#不加载包直接查询帮助
??vcd
# 本地搜索函数
help.search("heatmap")
??heatmap
#列出包含关键字的内容
apropos("sum")
apropos("sum",mode = "function")
#网络搜索
RSiteSearch("matlab")
#向量 Vector 是构成其他数据结构的基础 向量是用于存储数值型,字符型或逻辑型数据的一堆数组
#-----
#创建向量 函数c
x <- c(1,2,3,4,5)
x
y <- c("one","two","three")
y
z <- c(T,F,T)
z
#快速构建向量
c(1:100)
seq(from=1,to=100,by=2)
#1到100内的十个等差值
seq(from=1,to=100,length.out=10)
#重复输出
rep(c(1,2,3),10)
rep(x,each=3)
rep(x,each=2,times=3)
#向量计算
y <- c(6,7,8,9,10)
x*2+y
#-----
#向量的索引
#1.正负整数索引
x <- c(1:100)
x[5]
x[-1]
x[c(4:18)]
#2.逻辑向量索引
y <- c(1:10)
y[c(T,F,T,T,F)]
y[y>5]
y[y>5 & y<9]
#3.名称索引
z <- c("one","two","three","four","five")
"one" %in% z
z["one" %in% z]
z %in% c("one","two")
k <- z %in% c("one","two")
z[k]
names(y) <- c("one","two","three","four","five","six","seven","eight","nine","ten")
y
#用名字访问向量
y["ten"]
euro["ATS"]
#-----
##修改向量
x[101] <- 101
x
v <- c(1:5)
v[20] <- 4
v
#-----
##插入元素
append(v,99,after = 4)
##删除向量
rm(v)
y <- y[-c(1:3)]
#------
#向量运算
x <- c(1:10)
x+1
y <- seq(1,100,length.out=10)
x+y
x*y
#幂运算
x**y
x^y
y;x
#取余运算
y%%x
#整除运算
y%/%x
#长度不同的向量运算
z <- c(1,2)
x+z
#长长度必须是短长度向量的背书,不然无法运算
z <- c(1,2,3)
x+z
#逻辑运算
x>5
x>y
x==y
#-----
##常用函数
#数学函数
abs(x)
sqrt(25)
log(16,2)
log10(10)
exp(x)
ceiling(-2.3)
floor(c(-2.3,4.5))
trunc(c(-2.3,4.5))
round(c(-2.3,4.5464),3)
signif(c(-2.3,4.5464),digits = 4)
sin(x)
cos(x)
#统计函数
vec <- c(1:100)
vec
sum(vec)
max(vec)
min(vec)
range(vec)
mean(vec)
#方差
var(vec)
round(var(vec),2)
#标准差
round(sd(vec),2)
#连乘
prod(vec)
#中位数
median(vec)
#分位数
quantile(vec)
quantile(vec,c(0.1,0.2,0.5,0.6))
#查询索引
t <- c(1,4,2,5,7,9,6)
which.max(t)
which(t==7)
which(t<7)
t[which(t<7)]
#矩阵是二维的向量
heatmap(state.x77)
x <- 1:20
m <- matrix(x,4,5)
m
#按行排列
m <- matrix(x,4,5,byrow = T)
m
rnames <- c("r1","r2","r3","r4")
cnames <- c("c1","c2","c3","c4","c5")
dimnames(m) <- list(rnames,cnames)
m
#显示向量的维数
dim(x)
#把x变成矩阵
dim(x) <- c(4,5)
x
dim(m)
#r的数组是多维的矩阵
x <- 1:20
#创建数组
dim(x) <- c(2,2,5)
x
dim1 <- c("a1","a2")
dim2 <- c("b1","b2","b3")
dim3 <- c("c1","c2","c3","c4")
z <- array(1:24,c(2,3,4),dimnames = list(dim1,dim2,dim3))
z
#矩阵的索引
m <- matrix(x,4,5,byrow = T)
m
m[1,2]
m[1,c(2,3,4)]
m[c(2,3),c(1,4)]
m["r1","c2"]
head(state.x77)
#访问整行
state.x77[,"Income"]
#访问整列
state.x77["Alabama",]
#矩阵运算
#数值矩阵与线性代数算法相同
t <- m[1,]
sum(t)
colSums(m)
rowSums(m)
rowMeans(m)
colMeans(m)
#矩阵相乘
n <- matrix(1:9,3,3)
t <- matrix(2:10,3,3)
#内积 点乘
n*t
#外积 叉乘
n %*% t
#求对角
diag(n)
n
#转置
t(n)
#因子,有序性变量和名义向变量,factor。这些分量的可能称之为一个水平,这些水平值构成的向量称为引子
#因子的应用:
#计算频数
#独立性检验
#相关性检验
#方差分析
#主成分分析
#因子分析
mtcars
table(mtcars$cyl)
f <- factor(c("red","red","blue","green","blue"))
f
week <- factor(c("Mon","Fri","Thu","Wed","Mon","Fri","Sun"),ordered = T,
levels = c("Mon","Tue","Wed","Thu","Fri","Sat","Sun"))
week
fcyl <- factor(mtcars$cyl)
plot(mtcars$cyl)
plot(fcyl)
num <- 1:100
cut(num,c(seq(0,100,10)))
#因子类型的数据
state.division
state.region