昨天我从Bill Venables那里了解到local()如何帮助创建静态函数和变量,例如,
example <- local({
hidden.x <- "You can't see me!"
hidden.fn <- function(){
cat("\"hidden.fn()\"")
}
function(){
cat("You can see and call example()\n")
cat("but you can't see hidden.x\n")
cat("and you can't call ")
hidden.fn()
cat("\n")
}
})
Run Code Online (Sandbox Code Playgroud)
从命令提示符的行为如下:
> ls()
[1] "example"
> example()
You can see and call example()
but you can't see hidden.x
and you can't call "hidden.fn()"
> hidden.x
Error: object 'hidden.x' not found
> hidden.fn()
Error: could not find function "hidden.fn"
Run Code Online (Sandbox Code Playgroud)
收到Error: Discrete value supplied to continuous scale消息后ggplot,geom_vline()我做了一些实验,发现以下惊喜.
这是一个可重现的示例,从一些数据开始:
require(lubridate)
require(ggplot2)
df <- data.frame(
date=dmy(c("2/6/2014", "3/6/2014", "4/6/2014", "5/6/2014")),
value=1:4
)
Run Code Online (Sandbox Code Playgroud)
让我们用垂直线绘制"3/6/2014":
ggplot(data=df, aes(x=date, y=value)) +
geom_line() +
geom_vline(xintercept = as.numeric(dmy("3/6/2014")), linetype=4)
Run Code Online (Sandbox Code Playgroud)

但是,如果我们改变geoms的顺序:
ggplot(data=df, aes(x=date, y=value)) +
geom_vline(xintercept = as.numeric(dmy("3/6/2014")), linetype=4) +
geom_line()
Run Code Online (Sandbox Code Playgroud)
生成以下错误消息:
Error: Discrete value supplied to continuous scale
Run Code Online (Sandbox Code Playgroud) 我有一个包含超链接的数据框,我希望将其作为可点击链接使用Sweave.我知道xtable,但不知道如何使用它来处理数据帧的内容作为LaTeX命令.
在knitr运行后,以下代码在LaTeX中导致"Runaway argument"错误:
\documentclass{article}
\begin{document}
<<fig.cap="This causes \\texttt{problems.}">>=
plot(1:10,10:1)
@
\end{document}
Run Code Online (Sandbox Code Playgroud)
这个原因并不明显,所以我希望这可以帮助那些可能遇到这个问题的人.