基本操作/包的移动/向量/矩阵/数组/数据框/列表/因子/NA/字符串

2023-12-19 21:46:10 浏览数 (1)

一.基本操作

代码语言:javascript复制
getwd()
setwd("c:/Users/wangtong/Desktop/RData/")#更改工作目录
list.files()#查看工作目录下的文件
dir()#查看工作目录下的文件
x <<- 5#<<-表示赋值给全局变量
ls()#查看已经定义的变量
ls.str()#查看已经定义的变量及详细信息(ls和str的组合)
str(x)#列出x的详细信息
rm(x)#删除x
rm(y,z)#删除x和y
rm (list=ls())#删除全部赋值
history()#列出代码记录
history(25)#列出最近的25条记录
save.image()#保存

二.换电脑后,包的移动

代码语言:javascript复制
Rpack <- installed.packages()[,1]#列出已经安装的R包
save(Rpack,file = "Rpack.Rdata")
load("C:/Users/wangtong/Desktop/RData/Rpack.RData")#在新电脑上运行该代码
for (i in Rpack)  install.packages(i)

三.向量

代码语言:javascript复制
x<-c(1,2,3,4,5)
y<-c("one","two","three","four")#字符型向量加引号
z<-c(TRUE,T,T,F,F)
mode(x)#查看向量x的类型

3.1.向量索引

3.1.1 数值型向量

代码语言:javascript复制
x<-(1,2,3,4,5)
x[1]#取向量x当中第1个元素
x[-1]#取向量x当中除了第1个以外的其它元素
x[c(1,3,5)]#取第1,3,5个元素
x[c(T,F)]#>1,3,5 循环补充
x[x>3]#从向量x中取出大于3的数
x[x>2&x<4]#>3 同时

3.1.2 字符型向量

代码语言:javascript复制
y<-c("one","two","three","four")
“one” %in% y  #>TRUE
y["one" %in% y]  #>"one" "two" "three" "four"
y[y %in% c("one","two")]  #>"one" "two"

3.1.3 取位置

代码语言:javascript复制
t <- c (1,2,2,5,7,9,6)
which.max (t) #向量t中的最大值所在位置 >6
which.min(t)
which(t==7)# 元素7所在位置
which(t>5)
t[which (t>5)]#返回具体值

3.1.4 将向量x赋予维度

代码语言:javascript复制
x<-1:20
dim(x)<-c(4,5)#4行5列,按列填充 #矩阵

x<-1:20
dim(x)<-c(2,2,5)   #数组

3.1.5 命名

代码语言:javascript复制
x<-c(1,2,3,4)
names(x)<-c("one","two","three","four")
代码语言:javascript复制
v<-c(1,2,3,4)
append(x=v,values=5,after=4)#在位置4后面插入数值5
代码语言:javascript复制
x<-x[-c(1,2)]#删除向量x中的1和2
x[1]<-3#把向量x中的第1个数改为3

四.矩阵(矩阵的四则运算需要行列一致)

4.1创建矩阵

代码语言:javascript复制
m <- matrix(1:20,4,5) # 4行5列,按列填充,遵循循环补齐原则
m <- matrix(1:20,4,5,byrow=TRUE)#按行填充

4.2 给矩阵补充行名和列名

代码语言:javascript复制
m <- matrix(x,nrow = 4,ncol = 5,byrow = TRUE)
rnames <- c("R1","R2","R3","R4")
cnames <- c("C1","C2","C3","C4","C5")
dimnames(m)=list (rnames,cnames)

4.3 矩阵索引

代码语言:javascript复制
m <- matrix(1:20,nrow = 4,ncol = 5)
m[1,2]
m[1,c(2,3,4)]
m[c(2,4),c(2,3)]
m[2,]
m[,2]
m[2]#第2行,第1列
m[-1,2]
m["R1","C1"]

4.4 矩阵的运算

代码语言:javascript复制
m 1#矩阵m中每一个元素都加1
colSums(m)#每一列的总和
rowSums(m)
colMeans(m)
rowMeans(m)

4.5 矩阵中的函数

代码语言:javascript复制
diag(m)#取对角线上的数字(该函数要求矩阵行和列相同)
t(m)#将行列转置

五.数组

5.1 创建数组

代码语言:javascript复制
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))

六.数据框

数据框的索引

代码语言:javascript复制
attach(mtcars)# mtcars为内置数据集,使用attach函数后,可省略"mtcars$",直接写列名
mpg
hp
detach(mtcars)#关闭
with(mtcars,{mpg})#大括号里面可替换列名
mtcars[3]#输出数据集mtcars的第3列
代码语言:javascript复制
subset(data, age >= 30, select = c(“name”, “age”)#在数据框data中选择age大于等于30的观测值,并只选择name和age两列

数据框的更改

代码语言:javascript复制
transform(women, height = height*2.54)
transform(women, cm = height*2.54)#新增一列,列名为cm
代码语言:javascript复制
worldphones <- as.data.frame(WorldPhones)
rs <- rowSums(worldphones)
cm <- colMeans(worldphones)
total <- cbind(worldphones,Total=rs)#给数据框添加列

七.列表

7.1创建列表

代码语言:javascript复制
a <- 1:20
b <- matrix(1:24,4,6)
c=mtcars
d <- "This is a test list"
mlist <- list(ni=a,hao=b,ya=c,la=d)

7.2 列表索引

代码语言:javascript复制
mlist[1]#输出的为列表的子集,结果仍是列表
mlist[[1]]#输出的为元素本身的数据类型
mlist[c(1,4)]
mlist["ni"]
mlist$ni
代码语言:javascript复制
mlist[[5]] <- iris#添加/修改列表  注意需为双中括号
mlist[5] <- NULL#删除列表
mlist[[5]] <- NULL

八.因子

代码语言:javascript复制
week <- factor(c("Mon","Fri","Thu","Wed","Mon","Fri","Sun"),order = TRUE,
               levels = c("Mon","Tue","Wed","Thu","Fri","Sat","Sun"))#添加order = TRUE表示有序型变量b

九.NA(未知值) NaN(不存在的值,如0/0) Inf(无穷大或无穷小,不可能的值,如1/0)

代码语言:javascript复制
a <- c(NA,1:49)
is.na(a)#测试向量a里面含元素NA吗
sum(a,na.rm = TRUE)
mean(a,na.rm = TRUE)#按49个数来计算
colSums(is.na(sleep))#计算每一列缺失值数目
rowSums(is.na(sleep))
c <- c(NA,1:20,NA,NA)
d <- na.omit(c)#将NA值移除

十.字符串

10.1 统计字符串长度

代码语言:javascript复制
> length(c(1,23,456))
[1] 3
> nchar(c(1,23,456))
[1] 1 2 3
> nchar("hello world")
[1] 11#空格也计算在内

0 人点赞