R语言入门练习

R软件入门练习
练习1 下载并安装R软件
1下载并安装R软件
2了解R的菜单
3安装程序包
4安装编辑器,建议安装Notepad++
练习2 安装并导入R程序包
1安装程序包
程序包>从本地zip文件安装程序包
2调用程序包
library(vegan)
library(ape)
练习3 查看帮助文件
1打开ape软件包的帮助文件
帮助>Html帮助>Packages>ape
2 导入ape程序包
library(ape)
3查找ape包中plot.phylo函数的帮助
?plot.phylo
4 将其中的Example文件粘贴到Console中,查看运行的结果。

练习4 查看boxplot的帮助文件
1在控制台中输入
?boxplot
2查看最后的examples 将帮助文件中的examples粘贴到控制台中,运行并观看运行结果。

3更改参数
boxplot(count ~ spray, data = InsectSprays, col = "lightgray") boxplot(count ~ spray, data = InsectSprays, col = "red",
xlab="spray" , ylab="counts")
练习5 数据读取和t检验
1将表2中的数据录入Excel中,另存为t.test.txt文件(参考t.test.data.txt)。

2 数据的读取
data<-read.table("路径/t.test.data.txt",header=T)
3 比值的计算
bmi<-weight/height^2
4 t检验
t.test(bmi, mu=22.5) #t检验
5 绘图
plot(height, weight) # 绘图
6 更改绘图的参数
plot(height, weight, pch=2) #更改后的绘图
练习6 方差分析和箱线图的绘制
1在excel中准备数据表,另存为 .txt文件,制表符间隔(参考anova.test.data.txt)
2用R读取数据表
bac<-read.table("d:/anova.test.txt",header=T)
3将ba数据框中的type转换为因子(factor)
as.factor(bac$type)
4方差分析
ba.an<-aov(lm(day~type,data=bac))
5 显示方差分析结果
summary(ba.an)
6绘制箱线图
boxplot(day~type,data=bac,col="red")
练习7 因子生成
1 将100,200,200,200,400,600,600,600,800 输入R中,保存到numeric对象中 numeric<-c(100, 200, 400, 600, 800)
2 将numeric转换为factor
factor.numeric<-as.factor(numeric)
3 查看factor.numeric的内容
factor.numeric
练习8 条件筛选
1 创建一个2到50的向量,形式为 2, 4, 6, 8, ..., 48, 50并名为为vector1 vector1<-seq(from=2, to=50, by=2)
2 选取vector1中的第20个元素
vector1[20]
3 选取vector1中的第10,15,20个元素
vector1[c(10,15,20)]
4 选取vector1中的第10到20个元素
vector1[10:20]
5 选取vector1中值大于40的元素
vector1[vector1>40]
练习9 了解工作路径
1 查看当前R工作的空间目录
getwd()
2 将R工作的路径设置为 d:/data/
setwd(“d:/data”)
附录:数据:
1 身高体重数据weight height
4.17 1.75
5.58 1.8
5.18 1.65
6.11 1.9
4.5 1.74
4.61 1.91
5.17 1.75
4.53 1.8
5.33 1.65
5.14 1.9
4.81 1.74
4.17 1.91
4.41 1.75
3.59 1.8
5.87 1.65
3.83 1.9
6.03 1.74
4.89 1.91
4.32 1.75
4.69 1.8
2 方差分析数据day type
2 a
4 a
3 a
2 a
4 a
7 a
7 a
2 a
5 a
4 a
5 b
6 b
8 b
5 b
10 b
7 b
12 b
6 b
6 b
7 c
11 c
6 c
6 c
7 c
9 c
5 c
10 c
6 c
3 c
10 c。

合集下载

R语言入门教程

R语言入门教程

R语言简介R语言笔记:数据分析与绘图的编程环境版本1.7R Development Core TeamJune10,2006Contents1绪论与基础11.1R语言环境 (1)1.2相关的软件和文档 (1)1.3R与统计 (2)1.4R与视窗系统 (2)1.5R的交互使用 (2)1.6入门训练 (3)1.7获取函数和功能的帮助信息 (3)1.8R的命令、对大小写的敏感,等等 (3)1.9对已输入命令的记忆和更改 (4)1.10命令文件的执行和输出的转向到文件 (4)1.11数据的保持与对象的清除 (4)2简单操作;数值与向量52.1向量与赋值 (5)2.2向量运算 (5)2.3产生规则的序列 (6)2.4逻辑向量 (7)2.5缺失值 (7)2.6字符向量 (7)2.7索引向量(index vector);数据集子集的选择与修改 (8)2.8对象的其他类型 (9)3对象,模式和属性103.1固有属性:模式和长度 (10)3.2改变对象的长度 (11)3.3属性的获取和设置 (11)3.4对象的类别 (11)4有序因子与无序因子124.1一个特例 (12)4.2函数tapply()与ragged数组 (12)4.3有序因子 (13)5数组和矩阵145.1数组 (14)5.2数组的索引和数组的子块 (14)5.3索引数组 (15)iCONTENTS ii5.4函数array() (16)5.4.1向量,数组的混合运算,重复使用规则 (16)5.5两个数组的外积 (17)5.6数组的广义转置 (17)5.7专门的矩阵功能 (18)5.7.1矩阵乘法 (18)5.7.2线性方程和矩阵的逆 (18)5.7.3特征值和特征向量 (19)5.8奇异值分解与行列式 (19)5.9最小二乘拟合及QR分解 (19)5.10构建分区矩阵,cbind()和rbind() (19)5.11连接函数c(),针对数组的应用 (19)5.12由因子生成频数表 (20)6列表和数据帧216.1列表 (21)6.2构建和修改列表 (22)6.2.1连接列表 (22)6.3数据帧 (22)6.3.1创建数据帧 (22)6.3.2attach()与detach() (23)6.3.3使用数据帧 (23)6.3.4挂接任意列表 (24)6.3.5管理搜索路径 (24)7从文件中读取数据257.1函数read.table() (25)7.2函数scan() (26)7.3内建数据集的存取 (26)7.3.1从其他R功能包中载入数据 (27)7.4编辑数据 (27)8概率分布288.1R—作为一个统计表的集合 (28)8.2检测数据集合的分布 (29)8.3单样本和两样本检验 (32)9语句组、循环和条件操作359.1表达式语句组 (35)9.2控制语句 (35)9.2.1条件执行:if语句 (35)9.2.2重复执行:for循环,repeat和while (35)10编写自己的函数3710.1简单示例 (37)10.2定义新的二元操作符 (38)10.3指定的参数和默认值 (38)10.4参数’...’.. (39)10.5函数内的赋值 (39)10.6更多高级示例 (39)CONTENTS iii10.6.1区组设计的效率因子(Efficiency factors) (39)10.6.2删除打引数组中的所有名称 (40)10.6.3递归的数值积分 (41)10.7范畴(scope) (41)10.8定制环境 (43)10.9类别,通用函数和对象定位 (44)11R的统计模型4511.1定义统计模型;公式 (45)11.1.1对比(contrasts) (48)11.2线性模型 (48)11.3用于释放模型信息的通用函数 (48)11.4方差分析与模型比较 (49)11.4.1方差分析表(ANOVA tables) (49)11.5更新拟合模型 (50)11.6广义线性模型 (50)11.6.1族(families) (51)11.6.2函数glm() (51)11.7非线性最小二乘和最大似然模型 (53)11.7.1最小二乘 (53)11.7.2最大似然 (54)11.8一些非标准的模型 (55)12图形过程5612.1高级绘图命令 (56)12.1.1函数plot() (56)12.1.2显示多元数据 (57)12.1.3显示图形 (58)12.1.4高级绘图函数的参数 (58)12.2低级绘图命令 (59)12.2.1数学注释 (61)12.2.2Hershey矢量字体 (61)12.3图形的交互 (61)12.4使用图形参数 (62)12.4.1持续性变更(Permanent changes):par()函数 (62)12.4.2临时性变更:图形函数的参数 (63)12.5图形参数列表 (63)12.5.1图形元素 (63)12.5.2坐标轴和标记 (64)12.5.3图边缘(Figure margins) (65)12.5.4多图环境 (65)12.6设备驱动 (67)12.6.1文本文档的PostScript图表 (67)12.6.2多重图形设备 (67)12.7动态图形 (68)Chapter1绪论与基础1.1R语言环境R是一套由数据操作、计算和图形展示功能整合而成的套件。

R语言基础-(1)

R语言基础-(1)
24
25
帮助文件的内容
• t.test{stats} #函数名及所在包
• Fitting Linear Models #标题 • Description • Usage • Arguments #函数描述 #默认选项 #参数
• Details
• Author(s) • References • Examples
#详情
#作者 #参考文献 #举例
26
1.2 R图形界面:Rstudio
• Rstudio是R的图形界面之一,可以让 R 语言代码更直观、明了地运 行。 RStudio 同样 是 免费 和 开源 的 ,可以在网站上自由下载与使 用(/ide/download/)。 • 安装Rstudio
7
R 的起源
Ross Ihaka
自1997年以后,有一个核心团队,这一团队能对 R
的源代码进行修改。
Robert Gentleman
R的特点
多领域的统计资源
目前在R网站上约有5400个程序包,涵盖了基础统计学、社会学、 经济学、生态学、空间分析、系统发育分析、生物信息学等诸多方面。 跨平台 免费开源
Windows binary: vegan_1.17-2.zip Reference manual: vegan.pdf Window下程序包为zip文件,安装时不要解压缩。
20
安装程序包的方法
1 菜单安装 在联网的条件下,按菜单栏【程序包】下拉选择【安装程序包】 ,选
择所需的程序包进行实时安装;
22
查看程序包帮助文件
vegan 程序包内部都有哪些函数?分别有什么功能? 查询程序包内容最常用的方法: 1 菜单 帮助>Html帮助 2 查看pdf帮助文档

R语言上机练习课第一章-2019

R语言上机练习课第一章-2019
16
练习5:条形图
练习:对于数据集furness.csv,做出下列条形图
18
4
练习1:直方图
y<c(49.0,47.9,43.4,47.9,48.7,47.3,44.8,48.6,47.9,47.4,4 9.5,45.3,49.9,47.6,46.6,47.1,47.6,47.9,47.5,47.8,48.2, 49.3,50.2,51.3,52.6,48.7,49.2,49.9,49.6,50.3,51.8)
画出这组数据的箱线图,并解释异常值。
8. 两组数据的箱线图表示
> ward<-read.table("ward.csv", header=T, sep=",") > boxplot(EGGS~ZONE, data=ward, ylab="Number of eggs per capsule",
> set.seed(1) > VAR1 <- rlnorm(100,2,.5) > hist(VAR1, prob=T) > lines(density(VAR1))
7
5. Q-Q plots
通过将数据分位数与标准正态分布的数据进行比较, Q-Q正态图也可用于诊断偏离正态分布。
对这组数据画出Q-Q图,并判断这组数据是否满足正态分布。
6. 箱线图:Boxplots
对于较小的样本量,直方图和密度函数可能难以解释。 箱线图提供了描述数据分布的位置的替代方法。 > set.seed(6) > VAR2<-rlnorm(15,2,.5) > boxplot(VAR2)
> qqnorm(VAR1) > qqline(VAR1)

R语言入门教程

R语言入门教程

R语言入门教程R语言是一种功能强大的统计计算和图形化编程语言,广泛应用于数据科学、统计分析、机器学习等领域。

本教程旨在帮助初学者快速入门R语言,并提供基础知识和实际应用示例。

第一章:R语言简介1.1 R语言的起源和发展1.2 R语言的特点和优势1.3 R语言的应用领域和前景第二章:R语言的安装与环境配置2.1 下载和安装R语言2.2 R语言的集成开发环境(RStudio)配置2.3 R语言的包管理器和常用包的安装第三章:基本语法和数据结构3.1 R语言的基本数据类型3.2 变量和赋值操作3.3 基本数学运算和逻辑运算3.4 控制流程语句(if-else, for, while等)3.5 R语言的数据结构:向量、矩阵、数据框和列表第四章:数据导入与导出4.1 从文本文件导入数据4.2 从Excel文件导入数据4.3 从数据库导入数据4.4 将数据输出为文本、Excel或数据库文件第五章:数据处理与清洗5.1 缺失值的处理5.2 异常值的检测和处理5.3 数据转换和重塑5.4 数据合并和拆分第六章:数据可视化6.1 基本图形绘制函数6.2 高级图形包(ggplot2)的使用6.3 图形参数调整和自定义第七章:统计分析和建模7.1 常用统计分析方法的实现7.2 聚类分析和主成分分析7.3 线性回归和逻辑回归模型7.4 机器学习算法(如随机森林、支持向量机)的应用第八章:R语言编程高级技巧8.1 函数的定义和调用8.2 自定义包的创建和使用8.3 面向对象编程(OOP)的实现8.4 并行计算和代码优化技巧第九章:实际案例分析9.1 数据挖掘和预测建模9.2 金融风险管理分析9.3 生物信息学数据处理和分析9.4 社交网络分析和可视化第十章:进阶学习资源推荐10.1 R语言官方文档和在线教程10.2 统计学和数据科学相关书籍推荐10.3 开源R语言项目和社区资源通过本教程的学习,读者将能够掌握R语言的基本语法和数据结构,能够进行数据的导入、处理、可视化和统计分析,在实际应用中能够解决问题和开展研究。

R语言入门和使用技巧

R语言入门和使用技巧
[,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9 [4,] 10 11 12
> x = array(1:24,c(3,4,2)) ,,1
[,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 2 5 8 11 [3,] 3 6 9 12
type, main, sub, xlab,ylab, xlim, ylim, axes, asp, log, col, pch, cex, lty, lwd,
Par charts
Par charts
Col: 图中符号(点、线等)的颜色, col.axis 坐标轴刻度标记的颜色 b 坐标轴标题的颜色 col.main 图主标题的颜色 col.sub 图副标题的颜色
Cex: 图上元素(文本和符号等)的缩放倍数 ;取值为一个相对于1的数值 cex.axis 坐标轴刻度标记的缩放倍数 b 坐标轴标题的缩放倍数 cex.main 图主标题的缩放倍数 cex.sub 图副标题的缩放倍数
plot charts
plot(c(0,4.5),c(0,4),col="white",xlab="",ylab="",main="pch=",xaxt="n",yaxt="n",cex.main=2.5) for (i in 0:24) {points(i %% 5, i %/% 5, pch=i,cex=2)text(0.3+ i %% 5, i %/% 5, i, cex=2)}
❖ R语言的发展
1980年(贝尔实验室)
R完善(MathSoft 公司的统Robert Gentleman 和 Ross Ihaka )

代谢组学 r语言入门

代谢组学 r语言入门

代谢组学 r语言入门
代谢组学是对生物体内代谢产物进行定性和定量分析的一种技术,它可以帮助我们了解生物体在不同条件下的代谢状态。

在 R 语言中,有许多包可以用于代谢组学数据的处理和分析。

首先,你需要安装一些基本的包,如 `ggplot2`、`limma`、`meta分析` 等。

这些包可以通过 `install.packages()` 函数来安装。

然后,你可以使用 `read.csv()` 函数读取代谢组学数据文件。

通常,代谢组学数据以CSV 格式存储。

接下来,你可以使用 `ggplot2` 包绘制代谢物的浓度分布,使用 `limma` 包进行差异分析,使用 `meta 分析` 包进行代谢通路分析等。

最后,你可以使用 `write.csv()` 函数将分析结果输出到 CSV 文件中。

这只是一个简单的入门示例,实际的代谢组学分析可能需要更复杂的步骤和更多的包。

如果你需要更详细的帮助,请告诉我你的具体需求。

R语言菜鸟练习笔记 11

R语言笔记•设置种子123•使用Y=rnorm(n,u,r)生成白噪声•绘制yt(both方式)•绘制其与y=0水平线的比较图fun1<-function(){set.seed(123)y<-rnorm(50,0,1)x<-c(1:50)plot(x,y,type="b")abline(h=0)}•计算自相关系数•acf(yt)$ac•检验该序列的自相关性•Box.test(yt)fun2<-function(){set.seed(123)y<-rnorm(50)*10+10a<-acf(y)a$ac#Box.test(y)}•生成y=rnorm(50) * 10 + 10•生成y(t+1)=y(t) * 2 + rnorm(1)•生成y(t+2)=y(t+1) + y(t) * 2 + rnorm(1)•针对三个序列,分别•计算其自相关系数•检验该序列的自相关性fun3<-function(){set.seed(123)y<-c()y[1]<-1for(i in 2:50){y[i]<-y[i-1]*2+rnorm(1)}a<-acf(y)a$acBox.test(y)}fun4<-function(){set.seed(123)y<-c()y[1]<-1y[2]<-1for(i in 3:50){y[i]<-y[i-1]+y[i-2]*2+rnorm(1) }a<-acf(y)a$acBox.test(y)}•生成y=rnorm(50) * 10 + 10•生成y(t+1)=y(t) * 20 + rnorm(1)•生成y(t+2)=y(t+1)*10 - y(t) * 2 + rnorm(1)•针对三个序列,分别•计算其自回归fun51<-function(){y<-rnorm(50)*10+10plot(y)x11()pacf(y)LM<-lm(y~c(1:50))print(LM)}fun52<-function(n){y<-array(n)y[1]<-1for(i in 2:n){y[i]<-20*y[i-1]+rnorm(1) }plot(y)x11()pacf(y)LM<-lm(y~c(1:50))print(LM) }fun53<-function(n){y<-array(n)y[1]<-1y[2]<-1for(i in 3:n){y[i]<-10*y[i-1]-2*y[i-2]+rnorm(1) }plot(y)x11()pacf(y)LM<-lm(y~c(1:50))print(LM) }。

R语言入门基础教程

向量(vector)1、seq():产生有规律的数列,间距省略时默认值为1。

例1:seq(10, 20, 0.5)例2:seq(0, by = 0.03, length = 15)2、rep():产生有规律的数列,重复第一个变量若干次。

例1:rep(1:3, 1:3)例2:rep(1:3, rep(2, 3))例3:rep(1:3, length = 10)3、向量运算:一般是对应元素之间的运算,所以两个或多个向量运算时,要求它们包含的元素个素相同(或一个是另一个的整数倍)。

例1:a <- 1:3; b <- 4:6; a * b; b^a例2:a <- 1:3; b <- 4:9; a * b; b^a4、获取向量某一个或多个子集,向量前的负号"-"表示去除相应内容。

例1:x <- c(3, 4, 5, 2, 6); x[1:2]; x[-(1:2)]例2:x <- c(3, 4, 5, 2, 6); x[c(1, 2, 4, 1)]; x[-c(1, 2, 4, 1)]例3:xx <- seq(1, by = 3, length = 10); xx[xx > 13]例4:x <- 1:20; y <--9:11; x[y > (1)] #注意最后一个是"NA"5、主要向量运算函数。

例1:xx <- c(2, 6, 10, 8, 4)sum(xx) #和max(xx) #最大值min(xx) #最小值range(xx) #取值范围mean(xx) #平均值var(xx) #方差sort(xx) #从小到大排序rev(xx) #反排列,所以从大到小排序应该是rev(sort(xx))rank(xx) #单元值大小顺序prod(xx) #乘积,所以阶乘是prod(1:n)例2:x <- seq(1, 15, 2)append(x, 20:30, after = 5) #插入数据append(x, 20:30) #参数after缺省默认从向量的最后插入值replace(x, c(2, 4, 6), -1) #替换函数例3:match(c('Ohio', 'Wyoming'), ) #完全匹配函数pmatch(c('Oh', 'Wy'), ) #部分匹配函数[pmatch(c('Oh', 'Wy'), )]例4:yy <--9:10all(yy > 0) #判断所有all(yy > -10)any(yy == 0) #判断部分any(yy > 0)any(yy < -10)矩阵(matrix)矩阵生成函数matrix():matrix(data, nrow = , ncol = , byrow = F),其中,数据data 是必须的,其他都是选择参数,可以不选。

R语言入门——软件简介及实操

5
下载和安装R
The Comprehensive R Archive Network R主页 /
Windows版本下载:
简称CRAN,提供下载安装程序和相应软件包。
6
图1 R软件首页 /
7
菜单栏 快捷按钮
逻辑运算 与、或、非
!, &, &&, |, ||
31
R的函数
R是一种解释性语言,输入后可直接运行,类似于 linux 下的cp,rm,mv等命令。
函数命令形式:
function(对ຫໍສະໝຸດ ,选项= ) #每一个函数执行特定的 功能,后面紧跟括号。 例如:平均值 > mean(c(1,2,4)) # 计算这一组向量的均值 [1] 2.333333 R的函数是面向对象来执行。
...
备注:后续课程会详细介绍
34
练习三 数学运算
> a <- 2+2 # 将 2+2 的结果赋值给变量a > a # 展示变量a的值 [1] 4 > a < 4 # a 小于4 [1] FALSE # 结果为假 > b <-c (1,4,7) # 生成数组(1,4,7)并赋值给变量b > b [1] 1 4 7 > c <- rnorm(3) # 生成3个随机数 赋值给变量c > c [1] 0.6252384 -0.2690583 0.9649787 > rm(c) # 删除变量c > c 错误: 找不到对象‘c'
4
R软件简介
1. R是开源软件,代码全部公开,对所有人免费。
2. R可在多种操作系统下运行,如Windows、 MacOS、多种Linux和UNIX等。 3. R需要输入命令,可以编写函数和脚本进行批处理 运算,语法简单灵活。

R语言入门级实例

R语⾔⼊门级实例R语⾔⼊门级实例——⽤igragh包分析社群珍云恒星 2020-03-02 原⽂R语⾔⼊门级实例——⽤igragh包分析社群引⼊—— 本⽂的主要⽬的是初步实现R的igraph包的基础功能,包括绘制关系⽹络图(social relationship)、利⽤算法进⾏社群发现(community detecting)。

对于R语⾔零基础的同学⾮常友好。

以下R代码中如有含义不清的,建议尝试先在R编辑器中输⼊?xxx()进⾏查询(xxx是函数或语句名)。

此外,StackOverflow论坛也帮博主⼩⽩看懂了不少报错信息。

主要参考资料为《R语⾔与⽹站分析》[李明著][机械⼯业出版社][2014.04] 的9.3节《关系⽹络分析》。

0.背景 现已获得超市中商品的名称、分类以及⼤量顾客购物篮⼦中的商品信息,任务是分析哪些商品存在相关性,经常被放在⼀起购买。

题外话,这种分析的⼀例经典应⽤就是沃尔玛超市的“啤酒与尿布”,感兴趣者可⾃⾏搜索或参见Jocelyn_燕的⼀篇博客.1.原始数据及初步处理 数据来源是Kaggle竞赛的数据库instacart-market-basket-analysis.下载压缩⽂件之后,将有⽤的数据合并到⼀个Excel⽂件中,此处需要order_product,order,products,departments的数据.注意,这个⽂件极⼤,order_product_prior这个spread sheet⾥的数据在Excel⾥已经⽆法完全显⽰,博主就截取了前500条信息,形成了mini数据集,以下对数据集的操作都是针对这个mini表进⾏的.如下: 为了达到参考书上的数据形式,需要先整理这个Excel,形成如下图只有四列数据的形式.这⾥博主不太熟悉R的操作,就⽤Python的循环处理了,代码可附在⽂章最后. 这是当初处理数据集的⼀些⽂件,由于不会⽤R完成所有命令,显得很笨拙hhh.2.数据集导⼊ 导⼊的数据集包含四列,原商品编号过⼤,不便于处理,p_id、d_id分别是商品、商品分类的新编号,如下图:(这些也是⽤Python代劳的)3.建⽴关系⽹络与绘图步骤描述:引⽤igraph包,建⽴空关系⽹络并设置点数据→为点数据添加商品号以及商品分类属性→添加线数据→plot出来发现是⾮连通图(存在孤⽴的点的图),有两个未连通的点(点43,点44),只⽤⼿动对点的个数减2即可将点的个数修改后,重新跑前⾯的所有代码即可这部分代码如下:(完整代码见⽂末)1. #建⽴空关系⽹络并设置点数据2. library(igraph)3. gdata<-graph.empty(directed=F)4. #num<-ncol(cart)5. num<-ncol(cart)-2 #修改点的个数6. gdata<-add.vertices(gdata,num)7.8. #为点数据添加商品号以及商品分类属性9. category<-c();item<-c()10. for(i in colnames(cart))11. {12. if(i!=136&& i!=140)13. {14. category<-c(category,data$d_id[which(data$p_id==i)[1]] )15. item<-c(item,data$p_id[which(data$p_id==i)[1]] )16. }17. }18. V(gdata)$category<-category19. V(gdata)$item<-item20.21. #添加线数据22. #依次遍历每个订单,读取每个订单内的商品ID,并存放于向量item.i23. for(i in 1:nrow(cart))24. { item.i<-c()25. for(j in 1:ncol(cart))26. {27. if(cart[i,j]==1)28. {29. item.i<-cbind(item.i,colnames(cart)[j])30. }31. }32. #建⽴向量内不同商品间的关联联系33. item.i.num<-length(item.i)34. from<-c();to<-c()35. for(m in 1:(item.i.num-1))36. {37. from<-c(from,item.i[-c((item.i.num-m+1):item.i.num)])38. to<-c(to,item.i[-c(1:m)])39. }40. if(i>1)41. {42. edges<-rbind(edges,matrix(c(from,to),nc=2))43. }44. else45. {46. edges<-matrix(data=c(from,to),nc=2)47. }48. }49. edges0<-edges50. labels<-union(unique(edges[,1]), unique(edges[,2]))51. ids<-1: length(labels)#对点的编号重新编码,因为在igraph中边信息的ids必须连续52. names(ids)<-labels53. newfrom<-as.character(edges[,1]);newto<-as.character(edges[,2])54. edges<-matrix (c(ids[newfrom],ids[newto]), nc=2)55.56. #添加线信息并设置线权重57. gdata<-add.edges(gdata,t(edges[-1,]))#t()是矩阵转置函数58. E(gdata)$weight<-count.multiple(gdata)59. gdata<-simplify(gdata, remove.multiple=TRUE, remove.loops = TRUE, b = 'mean')60. #最后⼀个参数⼀定是b,不是b61. dev.off()#关闭图形设备62. plot(gdata,edge.width=E(gdata)$weight,main="gdata", bel=E(gdata)$weight)63.64. #发现是⾮连通图,有两个未连通的点(点43,点44),只⽤⼿动对点的个数减2即可65. #将点的个数修改后,重新跑前⾯的所有代码 画出来的效果如下:4.社群发现与绘图 此处采⽤⾃旋玻璃法(spinglass community detecting)进⾏社群发现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档