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")