2016-01-21 78 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