R语言数据分析第二节


一、向量

寻找水仙花数
代码如下(示例):

#寻找水仙花数
nums <-100:999
first.num <- nums %/%100
second.num <- (nums%%100)%/%10
third.num <- nums%%10
nums [(first.num^3 + second.num^3 + third.num^3) == nums]

运行结果在这里插入图片描述
判断因子
代码如下(示例):

nums<-1:6
c[6%%c==0]

判断完数
代码如下(示例):

nums <- 1:(6/2)
sum(nums[6%%nums == 0])== 6

二、矩阵

1.创建矩阵

代码如下(示例):

#创建矩阵
m<-matrix(1:8, nrow= 2)
#Q:按行创建矩阵
m<- matrix(1:8, nrow= 2, byrow=T)
m
matrix(c(15,2,6,3,7,4,8),nrow = 2)#byrow参数知识改变了数据的输入顺序,矩阵本身依然是按列存储

2.矩阵运算

代码如下(示例):

ml <-matrix(1:4, nrow =2)
m2<- matrix(2:7, nrow = 2)
ml ; m2
ml + m2
ml <- matrix(1:4, nrow = 2)
m2 <- matrix(23, nrow= 1)
ml ; m2
ml + m2

2.矩阵索引

代码如下(示例):

m <- matrix(1:12, nrow=4)
m
m[,2:3]
m[1:3,]#一定要记得逗号
m[1:3]
m[1:5]

2.矩阵元素筛选

代码如下(示例):

#访问矩阵的某行
m
m[1,]
#访问矩阵的某列
m
m[,2]
m[ ,1<=2]
#矩阵元素按条件筛选
m<- matrix(1:12, nrow=4)
m
first.col <- m[ ,1]
first.col
first.col %%2== 0
m [ first.col %%2= 0,]
m[ ,2]> 6
m [first.col %%2==0 & m[,2]>6,]
m<-matrix(1:12,nrow=4)
first.col<-m[,2]
m[first.col%%3==0 & m[,2]>5,]

2.矩阵值的改变

代码如下(示例):

#获取矩阵的行数,列数
m
nrow (m)
ncol (m)
#矩阵删除元素
m <- matrix(1:12, nrow = 4)
rm
m[-1,]
m[,-1]
rm[-1,-1]
#改变矩阵的值
m
m.value <- matrix (rep(0,6), nrow=2)
m. value
m[c(1,3),]
m[c(1,3),]<- m.value
m

2.矩阵应用

代码如下(示例):

#应用:修改图片
install.packages ("pixmap")
library (pixmap)
p <- read.pnm ( "python.pgm" )
p
plot(p)
str(p)
p2<- p
p2@grey[80:103,10:60]<-1
plot(p2)

2.矩阵应用

代码如下(示例):

<font color=#999AAA >代码如下(示例):

```c


<font color=#999AAA >

<hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1">

# 三、数组
<font color=#999AAA >代码如下(示例):

```c
#数组
test1 <- matrix(sample(90:100,6,replace = F), nrow = 2)
test1
test2 <- matrix(sample (90:100,6,replace = E), nrow = 2)
test2
test <- array(data=c(test1,test2), dim = c (2,3,2))
test
attributes(test)
str (test)
test[,,1]
test[1,,1]|
test[,1,1]
test[1,11]
<font color=#999AAA >代码如下(示例):

```c

# 四、列表
## 1.列表
<font color=#999AAA >代码如下(示例):

```c
#创建列表
stu.1st<-list(name="zhaishuxue" ,id=104,is.past.exam=T)
stu.1st
stu.1st2<-list("zhaishuxue",224,T)
stu.1st2
new.1<-vector (mode="list")
new.i
new.1LL"name"]]<-"zhaishuxue"
new.i
stu.lst<-list(name=c("zhaishuxue1" , "zhaishuxue2"),id=1001,ispast.sxam=T)

1.列表的常规操作

代码如下(示例):

#列表索引
stu.lst
stu.lstSname
stu.lst[[ "name"]]
stu.lst[ "name"]
name <-stu.lst["name"]
name
str(name)
name2 <-stu.lst[["name"]]
name2
str(name2)#双中括号一次提取出的是列表的一个组件,返回值是组件本身的类型
stu.lst[[1]]
stu.lst[1]
stu.lst[1:2]季对原列表取子集
stu.lst[c(1,3)]
#列表添加元素
stu.lst
stu.lstsage <- 19
stu.lst
length (stu.lst)#获取列表的长度
stu.lst[[5]]<-c8
stu.lst
stu.lst[6:8]<-1:3
stu.lst
#列表删除元素
stu.lst
stu.lst[[8]]<-NUL.
stu.lst
stu.lst[6:7]<- NULL
stu.lst
stu.lstsage <-NULL
stu.lst
#将多个列表拼接为—个列表
stu.lst
stu.lst2
c( stu.lst, stu.lst2)
#访间列表元素的标签
stu.lst
names (stu.lst)
``