r - 如何使这个循环更快?

时间:2016-08-22 00:45:11

标签: r loops csv

我正在阅读名为100px的{​​{1}}文件,如下所示:

enter image description here

它从max.csv并且有4,166行。然后,以下代码为每列创建一个新文件,使用cleanequityreturns.csv函数计算近似熵,并打印该值。我知道为每个列创建一个新文件非常繁琐,但我找不到另一个文件。

r1

我的问题如下:代码执行这些任务需要很长时间。我尝试将它运行10列,大约需要20分钟,对于所有299列,大约需要10小时。此外,此代码打印每个近似熵值,因此我仍然需要将它们复制并粘贴到Excel中以使用它们。

如何让这段代码运行得更快并将输出写入r299文件?

1 个答案:

答案 0 :(得分:1)

只需使用lapply()作为运行数据帧,通过迭代处理列:

equityreturn <- read.csv("cleanequityreturns.csv", header=T)

entropy_values <- lapply(equityreturn, function(col) {
        approx_entropy(col, edim = 4, r = 0.441*sd(col), elag = 1)
})