最終的に機能したのは次のとおりです。
a <- cast(we, year ~ region, mean, value='response')
ただし、地域とサイトごとに 1 つの観測しかないため、平均は単なる回避策です。c を関数として動作させることができませんでした。
提案された回答の出力 (ジャスティンによる)
> DT > response year > 1: 15 2000 > 2: 6 2000 > 3: 23 2000 > 4: 23 2000 --- > 794: 3 2010 > 795: 5 2010 > 796: 1 2010
更新: 望ましい出力は次のようになります。
> Year x1 x2 x3 x4 > 2000 4 5 16 22 > 2001 6 11 2 18 > 2002 1 0 21 10 > ...
因子レベルに基づいてデータを転置する方法を見つけるのに苦労しています。因子と応答の 2 列のデータがあります。因子ごとに多くの行があるので、各因子が 1 つの行にあり、異なる応答がその行の列になるように表を転置したいと考えています。その要因のレベルに基づいてループ内でサブセット化することはできないようです。洞察をいただければ幸いです。
データの例:
> response year
> 5 2001
> 10 2001
> 8 2001
> 1 2002
> 7 2010
> levels(data$year)
[1] "2000" "2001" "2002" "2003" "2004" "2005" ...
w <- matrix(0,54,15)
for(i in 1:levels(data$year)){
w[i] <- levels(data$year)==i
}
この構文は明らかに正しくありませんが、これは私が達成しようとしていることのアイデアです。
ありがとうございました。