2016-01-21 79 views
1

在R标准偏差我有一个数据帧在R.计算上的数据帧

index seq change change1 change2 change3 change4 change5 change6 
    1  1 0.12 0.34  1.2  1.7  4.5  2.5 3.4 
    2  2 1.12 2.54  1.1  0.56 0.87 2.6 3.2 
    3  3 1.86 3.23  1.6  0.23 3.4 0.75 11.2 
    ... ... ... ...  ...  ...  ... ...  ... 

数据帧的名称只是FUllData。我可以使用代码访问FullData的每一列:

FullData[2] for 'change' 
FullData[3] for 'change1' 
FullData[4] for 'change3' 
... 
... 

现在,我希望计算在第一四列的第一行值的标准偏差等所有列

standarddeviation = sd (0.12 0.34  1.2  1.7) 
then 
standarddeviation = sd (0.34  1.2  1.7 4.5) 

以上必须适用于所有行。所以基本上我想明智地计算sd行,并且数据存储在列的明智之处是可以做到这一点。 如何通过在索引或seq变量上使用for循环访问数据框的行? 我如何在R中做到这一点?有没有更好的办法?

+2

您可以使用'apply'访问行。看看'apply(data [....],1,sd)' – PereG

+0

您是否考虑将数据帧从这种宽格式转换为长格式?然后,您可以执行滚动标准偏差。 – Parfait

回答

0

我想你正在寻找这样的东西。

st.dev=numeric() 
for(i in 1:dim(FUllData)[1]) 
{ 
    for(j in 1:dim(FUllData)[2]) 
    { 
     st.dev=cbind(st.dev,sd(FUllData[i:dim(FUllData)[1],j:dim(FUllData)[2]])) 
    } 
} 
+0

dim(FullData)为空 – Hiesenberg