【问题标题】:Output of hints function from hints package in R从 R 中的提示包输出提示函数
【发布时间】:2014-01-12 21:15:54
【问题描述】:

以下代码取自提示包的文档。此代码的最后一行抛出错误。

library(hints)
m <- lm(BOD)
hints(m)
library(xtable)
xtable(hints(m))

错误是

Error in UseMethod("xtable") : 
  no applicable method for 'xtable' applied to an object of class "hints"

我想知道如何获得hints 函数输出以在knitrsweave 文档中使用xtable 函数。

【问题讨论】:

  • 感谢@Dason 的评论。你能告诉在 knitr 中显示提示输出的其他方法是什么吗?请记住提示输出未显示在 R 控制台中。
  • 来自hints函数文档:对象兼容xtable包获取LaTeX输出,xtable的所有参数都可以使用。
  • 我不确定 sweave 或 knitr 标签在这里是否合适,因为这个问题与它们没有任何关系。

标签: r knitr sweave xtable


【解决方案1】:

看起来 xtable.hints 由包提供,但未正确导出,因此您无法实际使用它。虽然这是一个相当简单的函数,但最简单的解决方案可能是复制源代码并创建自己的函数来完成完全相同的事情。

xtable.hints <- function(x, align = "llll", ...){
    x <- as.data.frame(x$results[, c(2, 1, 3)])
    colnames(x) <- c("Package", "Function", "Task")
    xtable(x, align = align, ...)
}

x <- 1:10
y <- rnorm(10)
o <- lm(y~x)
xtable(hints(o)) # now it works

【讨论】:

  • 顺便说一句,我通过查看library(help=hints) 并看到 xtable.hints 是包的一部分但后来发现它没有被导出。您仍然可以使用getAnywhere(xtable.hints) 查看该函数,这就是我获取源代码的方式。
  • 我在页面上为提示包提交了一个问题。我们将看看 Hadley 是否修复了它。这是一个真的简单的解决方法,但我怀疑这个包现在是否在他的优先级列表的顶部。
猜你喜欢
  • 2021-02-28
  • 1970-01-01
  • 2020-12-23
  • 1970-01-01
  • 1970-01-01
  • 2017-10-14
  • 1970-01-01
  • 2021-05-06
  • 1970-01-01
相关资源
最近更新 更多