2016-01-21 6 views
1

У меня есть dataframe в R.вычисления стандартного отклонения в R на dataframe

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 
    ... ... ... ...  ...  ...  ... ...  ... 

Название dataframe просто 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 row wise, и данные хранятся в виде столбца, можно ли это сделать. Как я могу получить доступ к строке фрейма данных с помощью цикла for для индекса или переменной seq? Как это сделать в 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) - null – Hiesenberg

Смежные вопросы