我有以下数据,'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,drop = 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“包,以避免错误,因为它提供了相同的功能。然而,这也造成了同样的问题。
有什么解决办法吗?我是不是太蠢了,而且有明显的东西我错过了?我不是程序员/程序员/抄写员,但通常我可以从这里拼凑出我需要的东西。不过,我在这方面没有发现任何帮助,而且当我试图快速检查我的列表时,这个错误开始变得令人沮丧。提前谢谢。
发布于 2022-11-25 15:43:49
我不知道这是否算是一个答案,因为我不能解决你的问题,但我想我可以解释它。
如果您使用utils::View(C)而不是只使用View(C),那么无论加载了哪些包,我都会遇到相同的错误。根据this comment的说法,RStudio提供了自己的查看器,它可以显示列表和其他内容,除非通过名称空间utils::View调用,否则会对View进行重写。在RStudio之外的R中运行代码时,也会得到该函数的这个版本。
因此,显然,加载DescTools或e1071包也强制使用原始视图函数,因为这两个包都导入了utils包(默认情况下,utils包在R中已经加载)。
https://stackoverflow.com/questions/74572255
复制相似问题