私はまだかなり新しいRであり、特定の方法でデータを要約しようとしています。ここでそれを説明するために、私はnasaweatherパッケージから天気データを使用しています。一例として、特定の日の平均気温を取得し、このデータセットに含まれる3つの起源と12の月間に表示したいと考えています。クエリでデータセット内の選択されたエントリを要約する
私は興味のある日を指定して、空のデータフレームを作成してから、月を使ってforループを実行して平均を計算します月ごとに温度を計算し、それらをデータフレームにバインドします。最後に、私は、列名を調整し、結果をプリントアウト:私の手で
library(nasaweather)
library(magrittr)
library(dplyr)
query_day = 15
data_output <- data.frame(month = numeric(),
EWR = numeric(),
JFK = numeric(),
LGA = numeric())
for (i in 1:12) {
data_subset <- weather %>%
filter(day == query_day, month == i) %>%
summarize(
EWR = mean(temp[origin == "EWR"]),
JFK = mean(temp[origin == "JFK"]),
LGA = mean(temp[origin == "LGA"]))
data_output <- rbind(data_output, cbind(i, data_subset))
rm(data_subset)
}
names(data_output) <- c("month", "EWR", "JFK", "LGA")
print(data_output)
をこれには、以下が得られます。
month EWR JFK LGA
1 1 39.3725 39.0875 38.9150
2 2 42.1625 39.3425 42.9050
3 3 37.4150 36.7775 37.3025
4 4 50.1275 48.1550 49.2050
5 5 58.8725 55.7150 59.1575
6 6 70.7825 70.2950 71.5700
7 7 86.9900 85.1225 87.2000
8 8 69.2075 69.0725 69.9425
9 9 60.6350 61.2125 61.7375
10 10 59.8850 58.3850 60.5150
11 11 45.7475 45.1700 49.0700
12 12 32.4950 38.0975 34.0325
を正確に私が欲しいものです。私のコードははるかに複雑であるように思えて、この仕事を簡単にする方法があるかどうか尋ねたいと思っています。
あなただけの集計関数を使用し、 '<再構築することができます - 集約(一時を〜月+起源、天気、平均); reshape(a、id = 'month'、...) ' –
@Dirkに感謝しますが、私が正しいとすれば、特定の日の平均気温ではなく月全体の平均気温が得られます。集計関数内でそれを指定する方法はありますか? –
ああ、ああ、それを逃した - 集計(一時的な月+起源、天気[天気$日==クエリ_日、]、平均); (a、id = '月'、...) ' –