如何使用R中的数学方程编写for循环来计算?

时间:2012-08-10 18:22:27

标签: r math for-loop plyr

在R中,我想找到一种使用以下数学方程和.csv文件编写for循环的方法。

以下示例显示了.csv文件中的两行。

6/27/2010 8:45  131.04
6/27/2010 9:00  111.11

第二列在以下等式中为x

http://i.stack.imgur.com/inOKV.jpg

我需要帮助编写上面的等式和一个for循环,它写入带有负载变化的.csv文件。

1 个答案:

答案 0 :(得分:4)

要获得某组数字的L_var,我相信这会有效:

l_var = sd(x) / mean(x)

其中x是数字的向量。接下来我们将它包装在一个函数中:

l_var = function(x) sd(x) / mean(x)
outcome = l_var(input)

其中input是数字向量,outcome是数学方程的结果。

如果您的时间戳列属于POSIXlt类,则可以使用strftime创建一个因子列,您可以在其中对数据进行分类。有关此步骤的详细信息,请参阅此SO answer。接下来,您可以使用ddply包中的plyr来获取每个类别l_var(比如说​​一天):

result = ddply(df, .(cat), summarise, l_var = l_var(value))

其中df是输入data.frame,其中cat是时间类别,并且值为上面等式中的x值。要将结果写入文件,您可以使用write.csv

write.csv(result, file = "out.csv")

我认为这涵盖了所有步骤......