假设我有一个数据框如下:
> 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 中,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() 函数,但我想在这一步优化我的速度。谢谢!