我有一个数据集,其中包含307个全球性位置的十年时间(3653天的温度)。数据设置为一个数组(下面的示例),其中包含307个经度和307个纬度的3653个数据值(温度)。
my.array = array(1:344291597, dim=c(307, 307, 3653))
我想生成一个data.frame
,其中包含沿列的3653天温度值,并沿两列的行包含坐标。例如:
Lon Lat 01/01/1971 02/01/1971 03/01/1971 04/01/1971
20.5 60.5 -6.5 -7.1 -5.9 -6.3
20.5 61.5 -6.4 -7.2 -6.8 -6.5
20.5 62.5 -7.7 -7.9 -7.3 -7.4
有解决方案吗?我尝试了各种方法,但都没有成功。
答案 0 :(得分:2)
我认为这应该有效
my.array = array(1:344291597, dim=c(307, 307, 3653))
#Find locations from array
Locations <- cbind(my.array[,1,1],my.array[1,,1])
#Create new matrix to store temperature values
LocationsData <- matrix(data= NA,nrow = dim(my.array)[1], ncol = dim(my.array)[3])
#Populate new matrix with temperature values
for (i in 1:dim(my.array)[1]){
LocationsData[i,] <-as.vector(t(my.array[i,i,]))
}
Desiredoutput <- data.frame(cbind(Locations,LocationsData))
#add correct names
Names(Desiredoutput) <- c("Lon", "Lat", dimnames(my.array)[[3]])