数据帧到4D数组

我需要将数据帧(下面的伪代码中的"d"整形为4D数组。在特定情况下,我希望将下面的变量"count"包含在4D数组中,并按方法逐年按日期定位维度。

d <- data.frame(site=c(rep("aaa",4),rep("bbb",4)),date=c(114:117,220:223),year=c(2005:2008,2009:2012),count=rpois(8,34),method=c(rep(1,2),rep(2,rep(1,1),3)))
loveqinjun 回答:数据帧到4D数组

我们可以使用xtabs()

xtabs(count ~ .,d)
#,year = 2005,method = 1
# 
# date
# site  114 115 116 117 220 221 222 223
# aaa  45   0   0   0   0   0   0   0
# bbb   0   0   0   0   0   0   0   0
# 
#,year = 2006,method = 1
# 
# date
# site  114 115 116 117 220 221 222 223
# aaa   0  38   0   0   0   0   0   0
# bbb   0   0   0   0   0   0   0   0
# 
# [...]
#,method = 2
# 
# date
# site  114 115 116 117 220 221 222 223
# aaa   0   0   0   0   0   0   0   0
# bbb   0   0   0   0   0   0   0   0
# 
#,method = 2
# 
# date
# site  114 115 116 117 220 221 222 223
# aaa   0   0   0   0   0   0   0   0
# bbb   0   0   0   0   0   0   0   0
# 
# [...]

数据

d <- structure(list(site = structure(c(1L,1L,2L,2L),.Label = c("aaa","bbb"),class = "factor"),date = c(114L,115L,116L,117L,220L,221L,222L,223L),year = 2005:2012,count = c(45L,38L,35L,36L,30L,42L,25L,31L),method = c(1,1,2,2)),class = "data.frame",row.names = c(NA,-8L))
本文链接:https://www.f2er.com/3153930.html

大家都在问