gpt4 book ai didi

R:如何禁用包函数列表的截断?

转载 作者:行者123 更新时间:2023-12-04 11:13:21 26 4
gpt4 key购买 nike

如何列出键入packageName<tab>时曾经发生的所有结果,即通过自动完成功能提供的完整列表?在R 2.15.0中,我得到Matrix::<tab>的以下内容:

> library(Matrix)
> Matrix::
Matrix::.__C__abIndex Matrix::.__C__atomicVector Matrix::.__C__BunchKaufman Matrix::.__C__CHMfactor Matrix::.__C__CHMsimpl
Matrix::.__C__CHMsuper Matrix::.__C__Cholesky Matrix::.__C__CholeskyFactorization Matrix::.__C__compMatrix Matrix::.__C__corMatrix
Matrix::.__C__CsparseMatrix Matrix::.__C__dCHMsimpl Matrix::.__C__dCHMsuper Matrix::.__C__ddenseMatrix Matrix::.__C__ddiMatrix
Matrix::.__C__denseLU Matrix::.__C__denseMatrix Matrix::.__C__dgCMatrix Matrix::.__C__dgeMatrix Matrix::.__C__dgRMatrix
Matrix::.__C__dgTMatrix Matrix::.__C__diagonalMatrix Matrix::.__C__dMatrix Matrix::.__C__dpoMatrix Matrix::.__C__dppMatrix
Matrix::.__C__dsCMatrix Matrix::.__C__dsparseMatrix Matrix::.__C__dsparseVector Matrix::.__C__dspMatrix Matrix::.__C__dsRMatrix
Matrix::.__C__dsTMatrix Matrix::.__C__dsyMatrix Matrix::.__C__dtCMatrix Matrix::.__C__dtpMatrix Matrix::.__C__dtrMatrix
Matrix::.__C__dtRMatrix Matrix::.__C__dtTMatrix Matrix::.__C__generalMatrix Matrix::.__C__iMatrix Matrix::.__C__index
Matrix::.__C__isparseVector Matrix::.__C__ldenseMatrix Matrix::.__C__ldiMatrix Matrix::.__C__lgCMatrix Matrix::.__C__lgeMatrix
Matrix::.__C__lgRMatrix Matrix::.__C__lgTMatrix Matrix::.__C__lMatrix Matrix::.__C__lsCMatrix Matrix::.__C__lsparseMatrix

[...truncated]

[...truncated]消息令人不快,我想提供完整的 list 。为了避免截断,我需要调用哪个选项/标志/旋钮/配置/提示?我有一种印象,我曾经看过完整列表,但现在已经不见了-也许那是在不同的操作系统(例如Linux)上。

我知道 ls("package:Matrix")是一种有用的方法,但它与设置选项并不相同,并且列表是不同的。

最佳答案

不幸的是,在Windows上,此行为似乎硬连接到用于构造控制台的C代码中。因此答案似乎是“不,您不能禁用它”(至少在不修改源代码然后从头重新编译R的情况下)。

以下是$RHOME/src/gnuwin32/console.c的相关行:

909 static void performCompletion(control c)
910 {
911 ConsoleData p = getdata(c);
912 int i, alen, alen2, max_show = 10, cursor_position = p->c - prompt_wid;
...
...
1001 if (alen > max_show)
1002 consolewrites(c, "\n[...truncated]\n");

您是正确的,在其他某些平台上,所有结果都已打印出来。 (例如,我经常使用Emacs,它将制表符完成的所有结果弹出到单独的缓冲区中)。

作为一个有趣的旁注, rcompgen,实际上执行制表符补全的后端(与将结果打印到控制台相反)始终会找到所有补全。只是Windows然后没有将它们打印出来供我们查看。

您可以通过键入以下命令来验证即使在Windows上也能做到这一点:
library(Matrix)
Matrix::
## Then type <TAB> <TAB>
## Then type <RET>
rc.status() ## Careful not to use tab-completion to complete rc.status !
matches <- rc.status()$comps
length(matches) # -> 288
matches # -> lots of symbols starting with 'Matrix::'

有关后端以及控制其行为的功能和选项的更多详细信息,请参见 ?rcompgen

关于R:如何禁用包函数列表的截断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10467052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com