首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么"DescTools“和"e1071”包在试图查看包含dist对象的列表时会导致错误?

为什么"DescTools“和"e1071”包在试图查看包含dist对象的列表时会导致错误?
EN

Stack Overflow用户
提问于 2022-11-25 11:38:31
回答 1查看 21关注 0票数 1

我有以下数据,'A‘。从它算出一个距离矩阵'B‘。然后,我将距离矩阵'B‘添加到列表'C’中,并查看它。

代码语言:javascript
复制
A <- data.frame(x = c(1:10),
                y = c(21:30))

B <- dist(A)

C <- list(B)

View(C)

到目前一切尚好。没问题,一切都很好。但是,一旦加载包"DescTools“或"e1071”并执行完全相同的操作,就会得到一个错误。

代码语言:javascript
复制
library("e1071")

A <- data.frame(x = c(1:10),
                y = c(21:30))

B <- dist(A)

C <- list(B)

View(C)

.Primitive中的错误(“[”)(x,1:6,drop = FALSE):不正确的维数

但是,当我直接调用列表或列表中的距离矩阵时,仍然会得到一个没有错误的返回:

代码语言:javascript
复制
C[[1]]
1         2         3         4         5         6         7         8         9
2   1.414214                                                                                
3   2.828427  1.414214                                                                      
4   4.242641  2.828427  1.414214                                                            
5   5.656854  4.242641  2.828427  1.414214                                                  
6   7.071068  5.656854  4.242641  2.828427  1.414214                                        
7   8.485281  7.071068  5.656854  4.242641  2.828427  1.414214                              
8   9.899495  8.485281  7.071068  5.656854  4.242641  2.828427  1.414214                    
9  11.313708  9.899495  8.485281  7.071068  5.656854  4.242641  2.828427  1.414214          
10 12.727922 11.313708  9.899495  8.485281  7.071068  5.656854  4.242641  2.828427  1.414214

让我感到困惑的是,即使我用detach()卸载包,错误仍然存在。

代码语言:javascript
复制
library("DescTools")
detach("package:DescTools", unload=TRUE)

A <- data.frame(x = c(1:10),
                y = c(21:30))

B <- dist(A)

C <- list(B)

View(C)

一旦我重新启动会话,并且不加载任何一个包,它就会再次工作。

我测试了我使用的所有其他软件包。没有人会引起这种行为。我加载了"e1071“包最初是为了使用它的峰度和偏斜函数。当我跟踪这个特定包的错误时,我最终下载了"DescTools“包,以避免错误,因为它提供了相同的功能。然而,这也造成了同样的问题。

有什么解决办法吗?我是不是太蠢了,而且有明显的东西我错过了?我不是程序员/程序员/抄写员,但通常我可以从这里拼凑出我需要的东西。不过,我在这方面没有发现任何帮助,而且当我试图快速检查我的列表时,这个错误开始变得令人沮丧。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-25 15:43:49

我不知道这是否算是一个答案,因为我不能解决你的问题,但我想我可以解释它。

如果您使用utils::View(C)而不是只使用View(C),那么无论加载了哪些包,我都会遇到相同的错误。根据this comment的说法,RStudio提供了自己的查看器,它可以显示列表和其他内容,除非通过名称空间utils::View调用,否则会对View进行重写。在RStudio之外的R中运行代码时,也会得到该函数的这个版本。

因此,显然,加载DescTools或e1071包也强制使用原始视图函数,因为这两个包都导入了utils包(默认情况下,utils包在R中已经加载)。

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

https://stackoverflow.com/questions/74572255

复制
相关文章

相似问题

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