2017-12-14 9 views
2

変数がそれぞれtime_tick,gyr_X_value,gyr_Y_valuegyr_Z_valueの3つのデータセットがあります。次のように複数のデータセットにわたる特定の変数の分散の計算方法R

データセットのうちの一つの例である:

time_tick gyr_X_value gyr_Y_value gyr_Z_value 
1 .01 .12    .24   -.28    
2 .12  0    0   .05 
3 .04 .10    0   .17 
4 .03  0   -.25   .15 

私はvar()で設定された各個人データの分散を計算することができることを知っているが、どのようにIは全体gyr_X_valueの分散を算出することができます。すべての3つのデータセット?

+0

*データセットを*あなたは*データフレームを意味すると見なすことができます* ...あなたはあなたの質問を詳しく説明し、これまでに試したこと、そして実際にどこに止まっているのかを示す必要があります。 [this](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)を使用すると、最小限の再現可能な例(または* reprex *)を書くのに役立ちますあなたはより肯定的な反応を得る。 –

答えて

1

私たちは、それぞれの行の分散

library(matrixStats) 
rowVars(sapply(list(df1, df2, df3), `[[`, 'gyr_X_value')) 

を想定見つける必要がある場合には、関心がの分散を見つけることです、listでデータセットを置く「gyr_X_value」列を抽出し、rowVarsを使用することができます各データセットの特定の列は、その列に

sapply(list(df1, df2, df3), function(x) var(x[['gyr_X_value']])) 

注意を抽出した後varを使用する:オブジェクト名が「DF1」、「DF2」、「DF3」

と仮定されています3210
0

rbindを使用できます。与えられたデータフレームa、b、およびcは、行ごとに

combined <- rbind(a,b,c) 

See here for detailed usage.と組み合わせることができます。次に、指定された列に対して通常のようにvar()を使用できます。たとえば、combined [、2]です。

0

これらの種類の問題については、私は強引なアプローチを強くお勧めします。

あなたのデータ:

df <- read.table(text = "time_tick gyr_X_value gyr_Y_value gyr_Z_value 
1 .01 .12    .24   -.28    
2 .12  0    0   .05 
3 .04 .10    0   .17 
4 .03  0   -.25   .15", header = TRUE) 

計算:

library(tidyverse) 

df %>% gather(variable, value, -time_tick) %>% 
    group_by(variable) %>% 
    summarize(variance = var(value)) 

## A tibble: 3 x 2 
#  variable variance 
#  <chr> <dbl> 
#1 gyr_X_value 0.004100 
#2 gyr_Y_value 0.040025 
#3 gyr_Z_value 0.043425 

説明:まず、収集機能は長いものにあなたの全体のデータフレームをオン:

df %>% gather(variable, value, -time_tick) 
# time_tick variable value 
#1  0.01 gyr_X_value 0.12 
#2  0.12 gyr_X_value 0.00 
#3  0.04 gyr_X_value 0.10 
#4  0.03 gyr_X_value 0.00 
#5  0.01 gyr_Y_value 0.24 
#6  0.12 gyr_Y_value 0.00 
#7  0.04 gyr_Y_value 0.00 
#8  0.03 gyr_Y_value -0.25 
#9  0.01 gyr_Z_value -0.28 
#10  0.12 gyr_Z_value 0.05 
#11  0.04 gyr_Z_value 0.17 
#12  0.03 gyr_Z_value 0.15 

group_by()関数は、グループ化をvariableで設定し、summarize()関数は、グループ内で別々に分散を計算します。

関連する問題