【发布时间】:2013-11-12 15:35:24
【问题描述】:
我遇到了一个问题,当提供的函数抛出错误时,plyr 总是崩溃
> require(plyr)
Loading required package: plyr
Warning message:
package ‘plyr’ was built under R version 3.0.2
> df <- data.frame(group=c("A","A","B","B"), num=c(11,22,33,44))
> ddply(df, .(group), function(x) {x})
group num
1 A 11
2 A 22
3 B 33
4 B 44
> ddply(df, .(group), function(x) {stop("badness")})
called from: (function ()
{
.rs.breakOnError(TRUE)
})()
Error in .fun(piece, ...) : badness
Browse[1]>
# Crashes immediately
是否有人知道为什么会发生这种情况以及如何防止它(当然除了避免错误)?
(我在平台上运行 R 3.0.1:i386-w64-mingw32/i386(32 位)到 Windows 7 下的 RStudio 0.98.274)
编辑 作为一种解决方法,我将所有错误重定向为避免崩溃的警告
ddply(df, .(group), function(x) tryCatch(stop("badness"), error = function(e) warning(e)) )
如果我设法调整 plyr 和 R 版本,将报告这里发生的情况。
【问题讨论】:
-
FWIW 我无法在 OSX 下的 R 3.0.1 中复制它。
-
我也不能在 ubuntu 和 R 3.0.2 上运行您在干净的 R 会话中只运行这四个命令吗?
R --vanilla -
@Justin 这是一个新的会话,所以没有其他命令,虽然我意识到我忽略了加载 plyr 后显示的警告消息,现在编辑问题以反映这一点。
-
也许首先要尝试的是,鉴于警告将升级到 3.0.2?
-
@Justin 如果可以的话当然会,但由于工作中的网络安全,不能。但我正在努力获得一个以某种方式保证与 3.0.1 兼容的 plyr 版本......