1、基础
getwd()
#获得当前目录
setwd(dir = 'c:/User/ql/wd')
#设置新的工作目录
list.files()
#查看当前目录下的文件有哪些
x <- 5
# x = 5,R 语言中使用<-来赋值
x <<- 5
#将5强制赋值给x
2.安装安装包
install.packages(‘’)
#括号里面加包的名字
3、使用包
library(vad)
#调用vcd包
4、帮助
help(package='vcd')
5.0、R中数据结构
(1)向量,标量
(2)矩阵
(3)数组
(4)列表
(5)数据库
(6)因子
(7)时间序列
5.向量
向量在R语言中更像是Python中的一维数组(列表),类似于数学中的集合的概念,由一个或多个元素构成。
用 函数c 来创建向量
例如:
x <- c(1,2,3,4,5)
##x为一维向量
y <- c('one','two','three')
## 字符串需要加引号
z <- c(TURE,T,F)
##逻辑型不需要加引号,但是需要需要全部大写
6、向量
c(1:100)
##随机生成1到100个一维向量
seq(from=1,to=100)
##随机生成1到100个一维向量
seq(from=1,to=100,by=2)
##随机生成1到100,间隔为2的一维向量
seq(from=1,to=100,length.out=10)
##等差序列
6.1、向量运算
x <- c(1,2,3,4,5)
y <- c(6,7,8,9,10)
x*2+y
#可以相加减:8 11 14 17 20
x[x>3]
#可以直接得到大于3的数值:4 5
6.2、向量索引
向量索引是从1开始,不是从0开始(Python是从0开始)
x <- c(1:100)
#创建一个从1到100的一个向量
length(x)
#向量长度:100
x[5]
#x中,第5位向量的值:5
x[-19]
#除了第19位不输出,其他向量都输出
6.3、向量
z <- c('one','two','three','four','five')
z
# 'one' 'two' 'three' 'four' 'five'
'one' %in% z
# TRUE
z['one' %in% z]
#'one' 'two' 'three' 'four' 'five'
z %in% c('one','two')
# TRUE TRUE false false false
z[z %in% c('one','two')]
#'one','two'
k <- z %in% c('one','two')
z[k]
#'one','two'
y <- c(1:10)
names(y) <- c('one','two','three','four','five','six','seven','eight','nine','ten')
y
#'one','two','three','four','five','six','seven',
#'eight','nine','ten'
#1 2 3 4 5 6 7 8 9 10
names(y)
#'one','two','three','four','five','six','seven',
#'eight','nine','ten'
names(y[2])
#two
6.4、向量的增加 、删除、变换
x <- c(1:100)
x[101] <- 101
x
#增加一位
v <- 1:3
v[c(4,5,6)] <- c(4,5,6)
v
#增加三位
v[20] <- 4
v
#增加一位
append(x = v,values = 99,after = 5)
#增加数值99,在第五个数值之后
append(x = v,values = 99,after = 0)
#增加数值99,在第一位之前
rm(x)
x
#去除向量x
y[-c(1:3)]
y <- y[-c(1:3)]
y
#去除y中前3个值
y['four'] <- 100
y
#'four'值中的数值变为100
6.5、向量运算
x <- c(1:10)
x <- x+1
x
#2 3 4 5 6 7 8 9 10 11
7、矩阵和数组
矩阵是一个按照长方阵列排列的复数或实数集合。向量是一维的,而矩阵是二维的,需要有行和列(具有长宽)。
在R软件中,矩阵是有维数的向量,这里的矩阵元素可以是数值型,字符型或者逻辑型,但是每个元素必须拥有相同的模式,这个和向量一致。
数组是多维的向量(具有长宽高)
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
8、列表
列表就是一些对象的有序集合。列表中可储存若干向量、矩阵、数据框,甚至其他列表的组合。
列表是R中最复杂的一种数据结构,也是非常重要的一种数据结构。
8.1、向量与列表
(1)在模式上和向量类似,都是一维数据集合
(2)向量只能存储一种数据类型,列表中的对象可以是R中的任何数据结构,甚至列表本身。
a <- 1:10
b <- c(2:20)
c < 'this is a test list'
d <- matrix(1:20,4)
e <- mtcars
mlist <- list(a,b,c,d,e)
#mlist就是列表
9、数据框
数据框是一种表格式的数据结构。数据框旨在模拟数据集。
数据集通常是由数据构成的一个矩形数组,行表示观察,列表示变量。
数据框实际上是一个列表。列表中的元素是向量,这些向量构成数据框的列,每一类必须具有相同的长度,所以数据框是矩形结构,而且数据框的列必须命名。
9.1、矩阵与数据框
(1)数据框形状很像矩阵
(2)数据框是比较规则的列表
(3)矩阵必须为同一数据类型
(4)数据框每一类必须同一类型,每一行可以不同
?data.frame
#由data.farme创建数据框
state <- data.frame(?????)
#生成名为state的数据框
state[1]
#直接输出数据框的第一列
state[c(2:4)]
#输出第二列和第四列
state[,'state.abb']
#访问state.abb列
state['Alabama',]
#访问Alabama行
9.2、
plot(women$height,women$weight)
#绘图:数据框women中选取height列,和women中,weight列
7.读取文件
x <- read.table('input.txt')
x <- read.table('input.csv')
##读取txt,和csv文件
head(x)
tail(x)
##截取头部和尾部默认6行数据
head(x,n=10)
##截取最前10行数据
x <- read.table('input.csv',sep=",",header = TRUE)
##sep=",",分隔符,默认为空格
8、数据转换
x <- read.csv("achai3.csv")
is.data.frame(x)
#返回为TRUE,则数据为数据框,FLASE,就不是数据框
as.data.frame("achai2.csv")
##假设文件为矩阵数据类型,此代码转变为数据框类型
x <- data.frame("gou1.csv")
##数据框变矩阵,仅限于同类数据
x$2017
##提取2017这列
9、
library(vegan)
BIC <- read.csv("line1.csv")
data(BCI)
sp1 <- specaccum(BCI, method="random")
plot(sp1,xlim =c(0,900),ylim =c(0,60), ci.lty=0, ci.col="lightblue",xlab = "相机工作日 working days of cameras",ylab = "物种数Numbers of species")