小编ROL*_*OLO的帖子

currying和高阶函数之间的区别

看看Scala中的编程(控件抽象)我看到这两个具有相同效果的例子:

1.高阶函数

def withPrintWriter(file: File, op: PrintWriter => Unit) {
  val writer = new PrintWriter(file)
  try {
    op(writer)
  } finally {
    writer.close()
  }
}
Run Code Online (Sandbox Code Playgroud)

2.卷曲功能

def withPrintWriter(file: File)(op: PrintWriter => Unit) {
  val writer = new PrintWriter(file)
  try {
    op(writer)
  } finally {
    writer.close()
  }
}
Run Code Online (Sandbox Code Playgroud)

他们之间有什么区别?我们能否始终以两种方式获得相同的结果?

scala

9
推荐指数
2
解决办法
3247
查看次数

结合R Markdown和动画包

有没有办法结合animation package和降价?我想生成动画,我想在r markdown生成的html文件中包含和描述.

当然我可以从已生成的r markdown文件中嵌入代码saveHTMLsaveGIF文件,但我想自动执行此过程.

我正在使用Windows,R 15.1和最后一个RStudio.

markdown animation r knitr

7
推荐指数
1
解决办法
3671
查看次数

删除XML包中readHTMLTable中的标记

我正在尝试从以下网址的表中抓取数据:

http://www.nfpa.org/itemDetail.asp?categoryID=953&itemID=23033
Run Code Online (Sandbox Code Playgroud)

问题是包含在内的上标

<sup> </sup>
Run Code Online (Sandbox Code Playgroud)

标签.当我使用以下代码时(诚然不是很优雅)

url.overview <- "http://www.nfpa.org/itemDetail.asp?categoryID=953&itemID=23033"
overview <- readHTMLTable(overview)
overview <- overview[[2]]
overview <- overview[-1,]

f <- function(x){
  out <- iconv(x, "latin1", "ASCII", sub="")
  out <- gsub('[\\$,]', '', out) 
  out <- as.numeric(out)
  return(out)
}

overview <- matrix(f(as.character(unlist(overview))), ncol = ncol(overview))
overview <- as.data.frame(overview)
names(overview) <- c('year', 'fires', 'civ.deaths', 'civ.injuries', 'ff.deaths',
                     'ff.injuries', 'damage.reported', 'damage.2010dollars')
Run Code Online (Sandbox Code Playgroud)

我得到了我想要的东西,除了上标中的值被附加到表格单元格中的值的末尾.例如,(使用上面给出的URL中的行和列名称)2001年的平民死亡当它们应该是6196时存储为61963,因为上标3被解释为额外的数字.表中缺少上标的任何单元都完全正确.

经过几个小时努力完成文档后,我能够使用这些函数parseHTMLgetNodeSet从XML包中识别出包含<sup>标签的所有节点,但无法弄清楚该做什么:

overview <- htmlParse(url.overview)
getNodeSet(overview, "//sup")
Run Code Online (Sandbox Code Playgroud)

我认为我需要删除XML树的这些部分,然后将结果传递回readHTMLTable进行进一步处理,但我无法弄清楚如何执行此操作.

我非常感谢你的想法.

r

6
推荐指数
1
解决办法
605
查看次数

如何使lm在其输出中显示一个作为变量传递给它的公式

请考虑以下示例代码(来自lmdoc):

ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2,10,20, labels=c("Ctl","Trt"))
weight <- c(ctl, trt)
lm(weight ~ group)
form1 <- weight ~ group
lm(form1)
do.call("lm",list(formula=form1))
Run Code Online (Sandbox Code Playgroud)

使用以下(缩写)输出:

> lm(weight ~ group)

Call:
lm(formula = weight ~ group)

> lm(form1)

Call:
lm(formula = form1)

> do.call("lm",list(formula=form1))

Call:
lm(formula = weight ~ group)
Run Code Online (Sandbox Code Playgroud)

如您所见,第二次调用lm不显示公式,而是包含公式的变量.通过一些实验,我想出了第三个解决方案,但我觉得这个有点单调乏味.

因此问题是:是否有另一种方法来lm显示公式而不是变量(即不使用do.call我上面使用的方法).

(我想要的原因是我正在制作一个Sweave文档,所以我看不到调用,只看到输出,然后让我告诉你它使用的公式非常方便.)


更好的解决方案 - 感谢@Aaron

lm <- function(...) {
  mf <- match.call()
  mf[[1]] <- quote(stats::lm)
  env <- parent.frame()
  mf$formula <- …
Run Code Online (Sandbox Code Playgroud)

r

4
推荐指数
1
解决办法
1642
查看次数

根据SQL中的值添加唯一约束

我有一种情况,我只想在其他字段中有特定值的情况下才添加唯一约束(例如表为ID CategoryName名称值Value CategoryID)

约束将在ID,CategoryName和Name上,只有CategoryID为0

可能吗?

sql sql-server

1
推荐指数
1
解决办法
1506
查看次数

标签 统计

r ×3

animation ×1

knitr ×1

markdown ×1

scala ×1

sql ×1

sql-server ×1