最终奏效的是:
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 > ...
我正在努力寻找一种方法来根据因子水平转置我的数据。我有两列的数据,一个因子和一个响应。每个因素我有很多行,所以我想转置表格,使每个因素都在一行上,不同的响应作为该行中的一列。我似乎无法根据该因素的水平在循环中进行子集化。我将不胜感激。
数据示例:
> 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
}
这种语法显然不正确,但这是我想要完成的想法。
谢谢你。