由买买提看人间百态

topics

全部话题 - 话题: dframe
(共0页)
a******e
发帖数: 119
1
来自主题: Statistics版 - 提高R速度的一些tips
前段时间受了不少R运算速度太慢的折磨。做了点research 知道了点皮毛,抛砖引玉,
大家讨论一下。
1、Vectorization
for (i in …)
{
for (j in …) { dframe <- func(dframe,i,j)
}
}
这样的结构对R来说是个disaster。可以考虑ecterization
e.g. Instead of explicit element-by-element loop for
(i in 1:N) { A[i] <- B[i] + C[i] }
invoke the implicit elem.-by-elem. Operation: A <- B + C
2、用apply instead of looping
这个似乎有争议,有的说apply不能提高R的速度。不过,至少apply可以让你的code看
上去更简洁
3、Functional programming:
exp1:Filter(f, x) – Returns the elements of x for which f is true
> x
... 阅读全帖
i**z
发帖数: 194
2
来自主题: Statistics版 - 提高R速度的一些tips
参照 R cookbook 里面有不少 tips.
另外, lapply 可能会快点, sapply 和 loop 其实差不多。

前段时间受了不少R运算速度太慢的折磨。做了点research 知道了点皮毛,抛砖引玉,
大家讨论一下。
1、Vectorization
for (i in …)
{
for (j in …) { dframe <- func(dframe,i,j)
}
}
这样的结构对R来说是个disaster。可以考虑ecterization
e.g. Instead of explicit element-by-element loop for
(i in 1:N) { A[i] <- B[i] + C[i] }
invoke the implicit elem.-by-elem. Operation: A <- B + C
2、用apply instead of looping
这个似乎有争议,有的说apply不能提高R的速度。不过,至少apply可以让你的code看
上去更简洁
3、Functional programming:
exp1:Filter(f,... 阅读全帖
(共0页)