2017-11-29 14 views
1

を探す私は私が生物学的に見て非常に大きなデータセットを持っている非常に多くのR.年による価値の平均(全体ではなく日付)

と独学の初心者だと言って、これを序文ますデータ。 変数 "shoot.density"の平均を年ごとに分けたいのですが、私の日付データは "%d /%m /%y"と入力されています。これは、通常の方法で、これを分割するのは年ごとではなく個々の日付ごとに行うことを意味します。

tapply(df$Shoot.Density, list(df$Date), mean) 

ご協力いただければ幸いです。自分のデータのセクションに貼り付けてもうれしいですが、どうすればよいか分かりません。

答えて

2

あなたのデータは、日付・クラス内にある場合、あなたは今年変数にあなたの日付列を変換するためにformatを使用することができます。

tapply(df$Shoot.Density, list(format(df$Date, '%Y')), mean) 

それは形式%d/%m/%yにある場合は、SUBSTR関数が必要です。

tapply(df$Shoot.Density, list(substr(df$Date,7,8)), mean) 

またdplyrでこれを行うことができます。

library(dplyr) 
df %>% 
    group_by(years = format(df$Date, '%Y')) %>% 
    summarise(means = mean(Shoot.Density)) 

Anotheこれを行う方法はdata.tableパッケージの年の関数です:

library(data.table) 
setDT(df)[, mean(Shoot.Density), by = year(Date)] 
+0

ありがとうございます、私はさまざまな状況でカップルを使用しましたが、それは魅力的です。 –