我有一个大数据集,其中包含lat,lon,time和value。我使用“xtab”函数来完全重塑我的数据集矩阵并将其转换为我需要的形式。现在的问题是我不知道如何调用或导出由“xtabs”函数创建的新输出矩阵。
这是我原始数据集的一部分:
number lon lat month value
1 -124.5 31.5 1980.1 NA
2 -123.5 31.5 1980.1 NA
3 -122.5 31.5 1980.1 NA
4 -121.5 31.5 1980.1 NA
5 -120.5 31.5 1980.1 NA
6 -119.5 31.5 1980.1 NA
这是命令行:
AMS <- read.csv("C:\\Users\\wildfire.Acres.csv",header=TRUE)
xtabs(value~lat+lon+month, data=AMS, exclude="")
这是输出的一部分:
, , month = 1980.1
lon
lat -124.5 -123.5 -122.5 -121.5 -120.5
31.5 0 0 0 0
32.5 0 0 0 0
33.5 0 0 0 0
34.5 0 0 0 0
35.5 0 0 0 0
36.5 0 0 0 0.1
37.5 0 0 0.1 0
38.5 0 0 0.2 0
答案 0 :(得分:0)
输出不是矩阵,而是数组。要访问该数组的“1980.1”切片,首先要将结果分配给命名对象:
res <- xtabs(value~lat+lon+month, data=AMS, exclude="")
res[ , , "1980.1"]
你说你“在Excel中打开了结果”。您是否剪切并粘贴了屏幕输出?
当您使用write.csv
(一个不是用于输出数组的函数)和一个简单的3x3x3矩阵时,第三维将丢失:
res <- array(1:27, dim=c(3,3,3))
write.csv(res,"res1980.1.csv")
# What my text editor shows:
"","X1","X2","X3","X4","X5","X6","X7","X8","X9"
"1",1,4,7,10,13,16,19,22,25
"2",2,5,8,11,14,17,20,23,26
"3",3,6,9,12,15,18,21,24,27
我仍然不清楚需要什么输出或结果。