如何使reshape2 :: acast在变量聚合时抛出错误?

时间:2015-05-11 15:21:36

标签: r reshape2

> reshape2::acast(DF, Var1~Var2, value.var="value")
   D E
A  1 3
B  2 4
C NA 5

以下按预期方式工作:

> reshape2::acast(DFa, Var1~Var2, value.var="value")
Aggregation function missing: defaulting to length
  D E
A 2 1
B 1 1
C 0 1

对于执行聚合的情况,我更喜欢函数调用抛出错误而不是只写消息:

capture.output()

如何包装第二个调用以抛出错误而不是显示消息?

我已尝试过sink()test = subprocess.Popen( 'svn cat http://localhost/svn/WernerTest/JenkinsJobTemplates/trunk/smartTemplate.xml --username admin --password admin', stdout=subprocess.PIPE, universal_newlines=True) job = test.stdout.read().replace("@url@", "http://localhost/svn/WernerTest/TMS/branches/test1") jenkins = subprocess.Popen( 'java -jar D:\\applications\\Jenkins\\war\\WEB-INF\\jenkins-cli.jar\\jenkins-cli.jar -s http://localhost:8080/ create-job test7', stdin=subprocess.PIPE, universal_newlines=True) jenkins.communicate(job) 的某些组合,但我希望在我的结果变量中得到调用的结果。

1 个答案:

答案 0 :(得分:2)

消息是R中condition system的一部分,可以使用适当的函数进行处理。因此,这有效:

withCallingHandlers(reshape2::acast(DF, Var1~Var2, value.var="value"),
                    message = stop)

顺便说一句,这是强烈倾向于使用warningmessage而不是cat来做这些事情的原因。