r - 为什么不使用 UseMethod 调度默认值?

标签 r

试图理解为什么 rownames = FALSE 没有从 Test 传递到 Test.list?

Test = function( object , rownames = FALSE , ... )
{
    UseMethod( "Test" )
}

Test.list = function( object , rownames , ... )
{
    browser()
    # rownames is missing!
}

Test( list() )

最佳答案

只有实际参数传递给方法。每个 S3 方法都可以有自己不同的默认值(虽然这将是一个非常糟糕的设计)。

您应该努力使参数与泛型函数具有相同的默认值,最后可能还有一些额外的参数。

# Bad design, but possible to have defaults be different...
Test.list = function( object , rownames = TRUE , ... )
{
    browser()
    # rownames is TRUE!
}

Test( list() )

关于r - 为什么不使用 UseMethod 调度默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7801198/

相关文章:

r - 进程替换

r - 同时对数据框的特定列进行子集化和操作

r - 按 r 中 data.table 中的组累积识别新值

r - 如何在 R 中的绘图上连接数据点(对于每个主题)?

r - 使用 R 从需要凭据的 FTP 站点下载文件

r - pandas 中的向量化按列正则表达式匹配

r - 在 R 中创建一个非常大的稀疏矩阵

r - 如何在数据框中插入新行以使其行号等于R中给定向量的长度

r - 在mlr和parallelMap中可以并行化多个级别吗?例如 mlr.tuneParams 和 mlr.benchmark

从列名中删除部分字符串