1

数人の被験者について、1 時間にわたって 15 秒ごとに期間ごとに分割されたデータが収集されています。データフレームは次のようになります。時間は「Temps」、サブジェクトは「Sujet」、期間は「Palier」で決まります。

    data.frame':    2853 obs. of  22 variables:
 $ Temps         : Factor w/ 217 levels "00:15","00:30",..: 1 2 3 4 5 6 7 8 9 10 ...
 $ Sujet         : int  1 1 1 1 1 1 1 1 1 1 ...
 $ Test          : Factor w/ 3 levels "VO2max","Tlim",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ Palier        : int  1 1 1 1 1 1 1 1 1 1 ...
 $ RPE           : int  8 8 8 8 8 8 8 8 8 8 ...
 $ Rmec          : num  39.1 27.5 23.3 21.5 20.3 21.7 20.5 20.7 20.2 20.1 ...

ここで data.frame を垣間見ることができます:

  Temps Sujet   Test Palier RPE Rmec Pmec Pchim Fr   Vt    VE  FeO2 FeCO2  VO2 VCO2  RER  HR VO2rel     VE.VO2    VE.VCO2
1 00:15     1 VO2max      1   8 39.1  185 473.6 19 1854 34.60 16.24  4.48 1353 1268 0.94 121   17.6 0.02557280 0.02728707
2 00:30     1 VO2max      1   8 27.5  185 672.4 17 2602 44.30 15.77  4.78 1921 1731 0.90 124   25.0 0.02306091 0.02559214
3 00:45     1 VO2max      1   8 23.3  185 794.5 18 2793 50.83 15.63  4.85 2270 2015 0.89 131   29.6 0.02239207 0.02522581
4 01:00     1 VO2max      1   8 21.5  185 860.3 20 2756 55.76 15.68  4.88 2458 2224 0.90 137   32.0 0.02268511 0.02507194
5 01:15     1 VO2max      1   8 20.3  185 909.3 23 2709 61.26 15.84  4.88 2598 2446 0.94 139   33.8 0.02357968 0.02504497
6 01:30     1 VO2max      1   8 21.7  185 853.7 21 2899 59.85 16.00  4.89 2439 2395 0.98 140   31.8 0.02453875 0.02498956

各「パリエ」は約 5 分間続き、5 ~ 10 個の「パリエ」があります。各被験者と「パリエ」について、すべての変数の最後の 2 分間の平均を計算する必要があります。dcast() や ddply() についてはまだ理解していませんが、初心者です!

どんな助けでも大歓迎です!

4

1 に答える 1

2

それを(インストールする必要がある)に変えた場合、data.tableこれを行うことができます

library(data.table)
dt = as.data.table(d)  # assuming your existing data frame was called d
last.two.min = dt[, mean(tail(Rmec, 9)), by=Sujet]

これは、元のデータ フレームが と呼ばれ、最後の 9 項目が必要であると仮定していますd(15 秒ごとであるため、58:15 から 60:00 までが必要な場合は、最後の 8 項目が必要になる場合があります)。

それがRmec平均を求めたい変数だと思いました。平均を取得したいものが複数ある場合は、次のようにすることができます。

last.two.min = dt[, list(mean.Rmec=mean(tail(Rmec, 9)),
                        mean.RPE=mean(tail(RPE, 9))), by=Sujet]
于 2013-04-13T03:46:57.597 に答える