data.tableを使用して要約統計量を計算し、その結果に基づいて2番目の列の統計量を計算したいと思います。
これは、大気質データを使用した例です。
データを設定する
(このように来たふりをします)
library(data.table)
dt = as.data.table(airquality)
dt[ , Season:=ifelse(Month>7, 'Fall', 'Summer')]
風が強い月もあります
## The range of monthly Wind values
dt[ , list(MinWind=min(Wind), MaxWind=max(Wind)),
by=c('Season', 'Month')]
---- R OUTPUT:
Season Month MinWind MaxWind
1: Summer 5 5.7 20.1
2: Summer 6 1.7 20.7
3: Summer 7 4.1 14.9
4: Fall 8 2.3 15.5
5: Fall 9 2.8 16.6
>
目標:風が20を超えるまたは下回る月ごとにグループ化された平均季節日射量を計算します。
これを1つのステップで実行できますか?
## Add a column to indicate if it was a high wind month
dt[, HighWind:=any(Wind>20), by=Month]
## Aggregate based on both HighWind and Season
dt[, list(AveSolarR=mean(Solar.R, na.rm=TRUE)), by=c("HighWind","Season")]
---- R OUTPUT:
HighWind season AveSolarR
1: TRUE Summer 185.9649
2: FALSE Summer 216.4839
3: FALSE Fall 169.5690