在ddply中抛出的错误导致R崩溃

时间:2013-11-12 15:35:24

标签: r dataframe plyr

我遇到了一个问题,当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版本,将报告此处发生的事情。

1 个答案:

答案 0 :(得分:2)

我在R 3.1.1和plyr 1.8.1上遇到了同样的问题。

要解决此问题,我只是从源代码重新安装了该软件包。

install.packages("plyr", type = "source")