r语言 - 为什么 "DescTools" & "e1071" 包在尝试查看包含 dist 对象的列表时导致错误?



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

A <- data.frame(x = c(1:10),
y = c(21:30))
B <- dist(A)
C <- list(B)
View(C)

到目前为止一切顺利。没有问题,一切都好。但是一旦我加载了"DescTools"或";e1071"并执行完全相同的操作,我得到一个错误。

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,放弃= FALSE):尺寸数不正确

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

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()卸载包,错误仍然存在。

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";包,以避免错误,因为它提供相同的功能。但是,它会导致相同的问题。

是否有一些修复这个?我是不是太蠢了,我错过了什么明显的东西?我不是程序员/编码员/脚本员,但通常我可以从这里拼凑出我需要的东西。我发现没有任何东西可以帮助我解决这个问题,当我试图快速检查我的列表时,这个错误开始变得令人沮丧。提前谢谢。

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

如果您使用utils::View(C)而不是View(C),我就会遇到相同的错误,无论加载的包是。根据这个评论,RStudio提供了自己的查看器,它可以显示列表和其他东西,并推翻View,除非通过命名空间utils::View调用。当你在RStudio之外的R语言中运行代码时,你也会得到这个版本的函数。

显然,加载DescTools或e1071包也强制使用原始的View函数,因为两者都导入utils包(通常在R中默认已经加载)。

相关内容

  • 没有找到相关文章

最新更新