小编Tom*_*hen的帖子

计算成对差异的有效实现

假设我有一个数据框如下:

> foo = data.frame(x = 1:9, id = c(1, 1, 2, 2, 2, 3, 3, 3, 3))
> foo
  x id
1 1  1
2 2  1
3 3  2
4 4  2
5 5  2
6 6  3
7 7  3
8 8  3
9 9  3
Run Code Online (Sandbox Code Playgroud)

我想要一个非常有效的h(a,b)实现,它计算xi的总和(a - xi)*(b - xj),xj属于同一个id类.例如,我当前的实现是

h(a, b, foo){
  a.diff = a - foo$x
  b.diff = b - foo$x
  prod = a.diff%*%t(b.diff)
  id.indicator = as.matrix(ifelse(dist(foo$id, diag = T, upper = T),0,1)) + …
Run Code Online (Sandbox Code Playgroud)

r

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

Rcpp 中的 lengths() 糖函数?

在基数 R 中,lengths() 函数计算列表中每个元素的长度。例如,

> mylist = list(v1 = c(1,2,3), v2 = c(1,2), v3 = c(1,2,3,4))
> mylist
$`v1`
[1] 1 2 3

$v2
[1] 1 2

$v3
[1] 1 2 3 4

> lengths(mylist)
v1 v2 v3 
 3  2  4 
Run Code Online (Sandbox Code Playgroud)

在 Rcpp(或来自犰狳)中是否有类似的功能?我知道可以编写一个基于 Rcpp 的 apply() 函数,但我想在这一步优化我的速度。谢谢!

r armadillo rcpp

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

标签 统计

r ×2

armadillo ×1

rcpp ×1