前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基本操作/包的移动/向量/矩阵/数组/数据框/列表/因子/NA/字符串

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

原创
作者头像
用户10803254
修改2023-12-19 21:46:10
1610
修改2023-12-19 21:46:10
举报

一.基本操作

代码语言: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#空格也计算在内

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.基本操作
  • 二.换电脑后,包的移动
  • 三.向量
    • 3.1.向量索引
      • 3.1.1 数值型向量
    • 3.1.2 字符型向量
      • 3.1.3 取位置
        • 3.1.4 将向量x赋予维度
          • 3.1.5 命名
          • 四.矩阵(矩阵的四则运算需要行列一致)
            • 4.1创建矩阵
              • 4.2 给矩阵补充行名和列名
                • 4.3 矩阵索引
                  • 4.4 矩阵的运算
                    • 4.5 矩阵中的函数
                    • 五.数组
                      • 5.1 创建数组
                      • 六.数据框
                        • 数据框的索引
                          • 数据框的更改
                          • 七.列表
                            • 7.1创建列表
                              • 7.2 列表索引
                              • 八.因子
                              • 九.NA(未知值) NaN(不存在的值,如0/0) Inf(无穷大或无穷小,不可能的值,如1/0)
                              • 十.字符串
                                • 10.1 统计字符串长度
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档