【发布时间】:2012-10-08 15:09:39
【问题描述】:
我想使用 lattice 包在 R 中绘制线框。但是,我收到以下错误消息“不允许使用数据包 1 负长度向量的错误”。数据如下所示:
> result_mean
experiment alpha beta packet
1 0 1.0 1 3.000000
2 0 1.1 1 2.571429
创建数据的命令如下
png(file=paste("foobar.png"),width=1280, height=1280);
plot <- wireframe(result_mean$packet ~ result_mean$alpha * result_mean$beta,
data=result_mean, scales = list(arrows=FALSE, cex= .45, col = "black", font = 3),
drape = TRUE, colorkey = TRUE, main = "Foo",
col.regions = terrain.colors(100),
screen = list(z = -60, x = -60),
xlab="alpha", ylab="beta", zlab="mean \npackets");
print(plot);
dev.off();
我想知道这个错误消息是什么意思,是否有调试的好方法?
提前致谢!
【问题讨论】:
-
(1)
traceback()可以帮助查明哪里出了问题,(2) 尝试将代码缩减为最简单的数据集并绘制会产生此错误的绘图,然后共享数据与我们一起使用dput。 -
问题是,错误打印在图中,而不是在 R 会话中(我使用 source 命令执行脚本),所以 traceback() 根本没有提供任何信息。
-
一个小问题是,如果您指定
data=result_mean(如您所愿),那么您可以将公式表示为packet~alpha*beta,这样更具可读性,并且在一般。