0

Rで3列と多くの行(1000以上)を持つdata.frameで1時間ごとにローカル温度を収集していました:

日 - 時間 - 気温

  • 1 - 11:00 - 14
  • 1 - 12:00 - 17
  • ...
  • 2 - 11:00 - 10
  • 2 - 12:00 - 19
  • ...
  • 3 - 11:00 - 15
  • 3 - 12:00 - 9

各時間間隔内の平均気温を含む新しい列を追加する必要があります。例: 11:00 の平均気温は 13ºC に等しく、12:00 は 15C に等しいので、次のものが必要です。

日 - 時間 - 気温 - 平均

  • 1 - 11:00 - 14 - 13
  • 1 - 12:00 - 17 - 15
  • ...
  • 2 - 11:00 - 10 - 13
  • 2 - 12:00 - 19 - 15
  • ...
  • 3 - 11:00 - 15 - 13
  • 3 - 12:00 - 9 - 15

cbind、aggregateを試しましたが失敗しました。何か案は?

4

1 に答える 1

0

dfが data.frame の場合、次のように動作する可能性があります。

  avgTemp <- sapply(unique(df$Hour),function(x){mean(df$Temperature[df$Hour==x])})
  names(avgTemp) <- unique(df$Hour)

  df <- cbind(df,avgTemp[df$Hour])
于 2013-04-09T14:17:55.090 に答える