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(1,5,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(2∶3, 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,1,1]
<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)
``