我有一个sbt(Scala)项目,目前从Web上提取工件.我们希望转向一个可以缓存工件的企业标准化Nexus存储库.从Nexus文档中,我了解如何为Maven项目执行此操作.但是sbt显然使用了不同的方法.(我知道Ivy会以某种方式参与其中,但我从未使用它,也不了解它是如何工作的.)
如何告诉sbt和/或底层Ivy将所有依赖项用于企业Nexus存储库系统?我想要使用某种项目级配置文件的答案,以便我们的源存储库的新克隆将自动使用代理.(即,在点目录中使用每个用户的配置文件捣乱是不可行的.)
谢谢!
注意:这个问题和以下答案涉及data.table版本<1.5.3; v.1.5.3于2011年2月发布以解决此问题.查看更新的处理(03-2012):将外键上的SQL连接转换为R data.table语法
我一直在挖掘data.table包的文档(data.frame的替代品,对于某些操作来说效率更高),包括Josh Reich在纽约R Meetup(pdf)上关于SQL和data.table的演示,但是无法想象这完全琐碎的操作.
> x <- DT(a=1:3, b=2:4, key='a')
> x
a b
[1,] 1 2
[2,] 2 3
[3,] 3 4
> y <- DT(a=1:3, c=c('a','b','c'), key='a')
> y
a c
[1,] 1 a
[2,] 2 b
[3,] 3 c
> x[y]
a b
[1,] 1 2
[2,] 2 3
[3,] 3 4
> merge(x,y)
a b c
1 1 2 a
2 2 3 b …
Run Code Online (Sandbox Code Playgroud) 我有一个运行良好的Rmarkdown模板,我已对其进行参数化,因此我可以从不同的数据源生成相同报告的变体.但是,我想在每种情况下更改报告的标题.我怎么做?
这是我到目前为止的YAML标题:
---
title: "My Title"
author: "Me, Inc."
date: "August 4, 2015"
output: pdf_document
params:
title: default
---
Run Code Online (Sandbox Code Playgroud)
我已经尝试params=list(title="ASDF")
在调用中使用rmarkdown::render
,虽然我的代码可以看到该变量,但它并没有改变标题.我也试过r params$title
在YAML中使用,但这会产生语法错误.
还有什么我应该尝试的吗?谢谢!
这与其他一些问题有关,但我似乎无法弄清楚如何应用答案,所以我问了一个新问题.
我试图从一段看起来像这样的代码中找出一个无法解释的错误:
tryCatch(MainLoop(),
error=function(e) { fatal(lgr, paste('caught fatal error:', as.character(e)));
exit.status <<- 1 })
Run Code Online (Sandbox Code Playgroud)
问题是该错误似乎与库函数中隐藏的内容有关:
Error in nrow(x): (subscript) logical subscript too long
Run Code Online (Sandbox Code Playgroud)
这nrow
不在我的代码中,因为上面的C级错误仅适用于我的任何nrow
调用中从未发生过的索引类型.
所以我真的想从内部得到一个堆栈跟踪tryCatch
.这是一个类似的问题:
x <- function() { y(); }
y <- function() { z(); }
z <- function() { stop("asdf") }
> x()
Error in z() : asdf
> tryCatch(x(), error=function(e) { print(conditionCall(e)) } )
z()
> tryCatch(x(), error=function(e) { dump.frames() } )
> last.dump
$`tryCatch(x(), error = function(e) {
dump.frames()
})` …
Run Code Online (Sandbox Code Playgroud) 好的,我有两个命名列表,一个是"预期",一个是"观察".它们的结构可能很复杂,具有任意数据类型.我想获得一个新列表,其中仅包含观察列表中与预期列表中的元素不同的元素.这是一个例子:
Lexp <- list(a=1, b="two", c=list(3, "four"))
Lobs <- list(a=1, c=list(3, "four"), b="ni")
Lwant <- list(b="ni")
Run Code Online (Sandbox Code Playgroud)
Lwant是我想要的结果.我试过这个:
> setdiff(Lobs, Lexp)
[[1]]
[1] "ni"
Run Code Online (Sandbox Code Playgroud)
不,这个名字丢失了,我不认为setdiff会注意名字.订单明显无关紧要,我不希望a = 1与b = 1匹配.
不确定什么是好的方法......在一系列名称(Lobs)上循环的东西?听起来很笨拙,不像R一样,虽然可行......有什么优雅的想法吗?
经典而精彩的Programming Perl参考书中有一个部分,其中作者提供了有关如何编写最高计算效率的 Perl 的建议列表,接下来是关于如何编写最高编程效率的 Perl的建议列表,其次是更多关于维护者高效,移植效率和用户效率的建议.建议通常是完全矛盾的.(例如,"使用全局变量","不要使用全局变量.")
我在努力将一些"程序员高效"的R代码转换为"计算和维护者高效"代码时考虑到了这一点.
在这些方面,R风格有哪些有趣且有用的提示?哪些实践最有效的程序员,以及解决其他效率概念的等效实践是什么?
我正在与一个由分析师和统计学家组成的小团队合作,讨论什么是中等规模的R代码.他们是聪明人,但他们本身并没有接受过程序员的培训或经验.(我是.)他们已经编写了一些R代码,但是为了使我们的项目可扩展,高效和可维护,它需要变得结构良好,而且更加海盗化.学习成为更好的程序员的更好方法之一是学习优雅的现有代码.任何人都可以提出一些R代码的开源示例(在CRAN或任何地方)您认为特别清晰,有文化和良好的例子吗?功能性好,S3对象还可以,深度魔法不好.
当我使用knitr从以下代码构建HTML文档时:
Chunk Output
========================================================
Outside a chunk.
```{r chunk1, results='asis'}
cat('Inside a chunk\n\n')
for (i in 1:3) {
cat('* Inside loop #', i, '\n')
}
cat('Outside a loop, but still inside the first chunk')
```
Between chunks.
```{r chunk2, results='asis'}
cat('Inside second chunk')
```
Run Code Online (Sandbox Code Playgroud)
我得到输出,其中代码chunk1
与cat
语句的输出交错.有趣的是,for
循环内的输出作为单个块输出.
我宁愿所有的代码从chunk1
先出现,然后是所有的输出从chunk1
.有没有办法让Rmarkdown/knitr避免它目前正在进行的更细粒度的交织?
我有一个 git 存储库,我想将其镜像到 Perforce 存储库。我已经下载了 git-p4 脚本(不提供弃用警告的较新版本),并且一直在使用它。我已经想出了如何从 Perforce 中提取更改,但是当我尝试从 git repo 同步更改时出现错误。这是我到目前为止所做的:
git clone git@github.com:asdf/qwerty.git
git-p4 sync //depot/path/to/querty
git merge remotes/p4/master (there was a single README file...)
Run Code Online (Sandbox Code Playgroud)
所以,我已经将原点复制到一个干净的新导演,得到了一个看起来很可爱的合并文件树,并git status
表明我是最新的。但:
> git-p4 submit
fatal: Not a valid object name HEAD~261
Command failed: git cat-file commit HEAD~261
Run Code Online (Sandbox Code Playgroud)
git 邮件列表上的这个线程似乎是相关的,但我无法弄清楚他们对所有 A、B 和 C 做了什么。有人可以澄清“无效的对象名称”是什么意思,以及我能做些什么来解决这个问题?我想要做的就是定期将源/主节点快照到 Perforce 中;不需要完整的历史记录。谢谢。
好吧,这对我(Scala的新秀)以及我的同事(在Scala更先进)都很不利.Scala 2.8.0.这是一个问题的演示:
// I've got a var with some XML in it
scala> qq2
res9: scala.xml.Elem = <a><a1>A1</a1><bs><b>B1</b><c>C1</c><d>D1</d></bs></a>
// I can extract sub-elements
scala> (qq2 \ "bs")
res10: scala.xml.NodeSeq = NodeSeq(<bs><b>B1</b><c>C1</c><d>D1</d></bs>)
// but if I try to match against this NodeSeq, it fails to match
scala> (qq2 \ "bs") match {case <bs>{x @ _*}</bs> =>
for (xx <- x) println("matched " + xx) }
scala.MatchError: <bs><b>B1</b><c>C1</c><d>D1</d></bs>
at .<init>(<console>:7)
at ...
// but if I just type in the XML directly, …
Run Code Online (Sandbox Code Playgroud)