一覧表示する 1 つ以上の変数とその名前を簡単に指定できるようにするために、aggregate() を使用して関数を作成しようとしています。
データ:
FCST_VAR OBS_SID FCST_INIT_HOUR ME
WIND 00000 12 4.00000
WIND 11111 12 -0.74948
WIND 22222 12 -0.97792
WIND 00000 00 -2.15822
WIND 11111 00 0.94710
WIND 22222 00 -2.28489
単一の変数に対してこれを行うと、かなり簡単にグループ化できます。
aggregate.CNT <- function(input.data, aggregate.by) {
# Calculate mean ME by aggregating specified variable
output.data <- aggregate(input.data$ME,
list(Station_ID = input.data[[OBS_SID]]),
mean, na.rm=T)
}
ただし、次の 2 つの点で困惑しています。まず、(Group1 ではなく)「group by」列の名前を指定して関数を呼び出せるようにする方法です。たとえば、次の場合です。
aggregate.CNT <- function(input.data, aggregate.by, group.name) {
# Calculate mean ME by aggregating specified variable
output.data <- aggregate(input.data$ME,
list(group.name = input.data[[OBS_SID]]),
mean, na.rm=T)
}
ただし、これにより、出力の列名がgroup.name
引数の目的の値ではなくなります。
次に、それに基づいて構築します-オプションでソートする複数の変数を指定したい場合-名前を使用します。使用してみ...
ましたが、追加の引数は明らかに次の形式である必要があるため、それはおそらくないようです。
list(arg1 = input.data[[arg2]], arg3 = input.data[[arg4]])
arg3 = input.data[[arg4]]
そして、余分な引数をフォーマットに入れる方法はないと思います。したがって、引数を使用して文字列全体を関数に挿入する方法があるかどうか疑問に思っていました。
aggregate.CNT <- function(input.data, aggregate.by.list) {
# Calculate mean ME by aggregating specified variable
output.data <- aggregate(input.data$ME,
list(aggregate.by.list),
mean, na.rm=T)
aggregate.CNT(data, "Station_ID = data$OBS_SID, Init_Hour = data$FCST_INIT_HOUR")
これが不可能な場合は、代替方法の提案も大歓迎です。
ありがとう
マル