向量与每行数据表的R比较缓慢

时间:2015-10-19 14:40:42

标签: r data.table

我需要将一系列值(value_range)与数据表中的行进行比较,然后将结果编译为value_range中每个值的总和。

下面的方法#1显示了我想要做的最好的事情。 10次​​循环只是为了比较系统所需的时间。

implicit val myReads: Reads[MyCustomObject] = (
  (JsPath \ "key1").read[String] and
  (JsPath).read[CustomObject] and
  (JsPath \ "key3").read[String] and
  (JsPath \ "key4").readNullable[String] and
  (JsPath \ "key5").read(JsValue) and
  (JsPath \ "key6").read[Seq[CustomObject2]]
)(key1: String, custom: CustomObject, key3: String, key4: Option[String,
  key5: JsValue, key6: Seq[CustomObject2){
  SearchQuery.apply(key1, custom, key3, key4, transformToMap(key5), key6) // Where transformToMap is a custom function that I have defined.
}

有没有办法进一步提高速度?

1 个答案:

答案 0 :(得分:3)

system.time(
  for(j in 1:10) {
    res3 <- d[, vapply(value_range, 
                       function(i) sum((i > c1) & (i > c2)), 
                       FUN.VALUE = 1L)]
  })
#user  system elapsed 
#0.15    0.01    0.15 

all.equal(res1$V1, res3)
#[1] TRUE