首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R圈: circos.initialize中的误差

R圈: circos.initialize中的误差
EN

Stack Overflow用户
提问于 2016-01-27 16:25:59
回答 1查看 1.6K关注 0票数 13

我能够很容易地按照CRAN上的包装描述中的Circlize示例:

代码语言:javascript
复制
library('circlize')
set.seed(123)
mat = matrix(sample(1:100, 18, replace = TRUE), 3, 6)
rownames(mat) = letters[1:3]
colnames(mat) = LETTERS[1:6]
### basic settings
par(mfrow = c(3, 2))
par(mar = c(1, 1, 1, 1))
chordDiagram(mat)

但是,当我将mat替换为myMatrix时,会得到以下错误:

代码语言:javascript
复制
Error in circos.initialize(factors = factor(cate, levels = cate), xlim = cbind(rep(0,  : 
  Since `xlim` is a matrix, it should have same number of rows as the length of the level of `factors` and number of columns of 2.

有人能解释一下为什么我会收到那条信息吗?我不认为matmyMatrix之间的区别比myMatrix更大:

代码语言:javascript
复制
    A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z   A2  B2  C2  D2
A   1060360.659 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
B   0   32143148.75 996976.8445 0   4944648.524 5688385.041 61990.5913  0   0   0   0   -1563.225   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   31922242.6
C   0   0   6342776.843 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
D   0   0   0   28617385.81 17842142.64 0   0   0   0   0   0   0   0   409444.5633 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
E   0   0   0   4990921.202 105686446.3 536246.2188 0   0   0   0   0   0   0   8587899.583 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   378565.5746
F   0   92732.7741  0   4282.9319   33543553.89 36773976.59 1894761.93  0   0   333209.342  0   20739.0655  327956.7365 0   1022673.163 12229.0255  0   0   386112.1743 224039.3207 0   2395066.197 268247.2897 0   0   0   0   0   0   11926701.96
G   0   0   0   0   0   0   7753767.003 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
H   0   0   0   0   0   5184133.29  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
I   0   0   0   0   462767.7374 0   0   0   8992223.296 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
J   0   0   0   0   0   0   0   0   0   1950552.642 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
K   0   0   0   0   891032.5584 0   0   0   0   0   520107.9821 0   0   0   0   0   0   0   0   0   0   0   0   0   0   26724.8402  0   0   0   418902.5203
L   0   0   0   0   32044317.54 28147.5693  0   0   0   0   0   5383919.293 0   489912.5412 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   4559115.003
M   0   0   0   0   0   3125823.41  0   0   0   0   0   0   1738293.164 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
N   0   1053825.966 -8526.9758  1283429.314 60333051.34 2621812.931 -1130.1924  0   -779545.8004    8055145.684 918.8702    -379747.1919    -177.6205   298563606.5 -9316.8654  0   0   0   0   0   2631991.077 0   0   0   0   0   1107369.803 0   0   118812465
O   0   0   0   0   0   0   0   0   0   0   0   0   0   0   1500451.292 0   0   0   0   0   0   0   0   0   0   0   0   0   0   7432418.396
P   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
Q   0   0   1496058.76  0   -4056617.74 294503  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   410.4   0   0   0   0   0   0   0   1765984767

代码

代码语言:javascript
复制
dd <- read.table(header = TRUE, text = "  rn  A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z   A2  B2  C2  D2
A   1060360.659 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
                 B   0   32143148.75 996976.8445 0   4944648.524 5688385.041 61990.5913  0   0   0   0   -1563.225   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   31922242.6
                 C   0   0   6342776.843 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
                 D   0   0   0   28617385.81 17842142.64 0   0   0   0   0   0   0   0   409444.5633 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
                 E   0   0   0   4990921.202 105686446.3 536246.2188 0   0   0   0   0   0   0   8587899.583 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   378565.5746
                 F   0   92732.7741  0   4282.9319   33543553.89 36773976.59 1894761.93  0   0   333209.342  0   20739.0655  327956.7365 0   1022673.163 12229.0255  0   0   386112.1743 224039.3207 0   2395066.197 268247.2897 0   0   0   0   0   0   11926701.96
                 G   0   0   0   0   0   0   7753767.003 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
                 H   0   0   0   0   0   5184133.29  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
                 I   0   0   0   0   462767.7374 0   0   0   8992223.296 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
                 J   0   0   0   0   0   0   0   0   0   1950552.642 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
                 K   0   0   0   0   891032.5584 0   0   0   0   0   520107.9821 0   0   0   0   0   0   0   0   0   0   0   0   0   0   26724.8402  0   0   0   418902.5203
                 L   0   0   0   0   32044317.54 28147.5693  0   0   0   0   0   5383919.293 0   489912.5412 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   4559115.003
                 M   0   0   0   0   0   3125823.41  0   0   0   0   0   0   1738293.164 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
                 N   0   1053825.966 -8526.9758  1283429.314 60333051.34 2621812.931 -1130.1924  0   -779545.8004    8055145.684 918.8702    -379747.1919    -177.6205   298563606.5 -9316.8654  0   0   0   0   0   2631991.077 0   0   0   0   0   1107369.803 0   0   118812465
                 O   0   0   0   0   0   0   0   0   0   0   0   0   0   0   1500451.292 0   0   0   0   0   0   0   0   0   0   0   0   0   0   7432418.396
                 P   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
                 Q   0   0   1496058.76  0   -4056617.74 294503  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   410.4   0   0   0   0   0   0   0   1765984767")

myMatrix <- as.matrix(dd[, -1])
rownames(myMatrix) <- dd[, 1]
chordDiagram(myMatrix)
EN

回答 1

Stack Overflow用户

发布于 2016-07-11 12:44:26

在旧版本的circlize中,矩阵必须是matrix类而不是data.frame,因此需要通过以下方法显式地转换数据帧:

代码语言:javascript
复制
myMatrix = as.matrix(A + B)

在圆圈中,数据帧用于存储为邻接列表的数据(例如,group1的第一列,group2的第二列,关系强度的第三列)。

因为read.table()总是返回一个data.frame类,所以在较新版本的circlize中,如果矩阵表示为数据框架,那么就可以了。当它是一个数据帧时,chordDiagram()将首先检查列数是否大于3,并且所有列都是数字的。如果是这样,它将在内部转换为矩阵。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35042752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档