以下示例显示了.csv文件中的两行。
6/27/2010 8:45 131.04
6/27/2010 9:00 111.11
第二列在以下等式中为x
。
我需要帮助编写上面的等式和一个for循环,它写入带有负载变化的.csv文件。
答案 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")
我认为这涵盖了所有步骤......