我希望以等高线图的形式将分箱数据绘制为变量的函数,但是由于我仍然不习惯 R 处理数据结构的方式,我正在努力将我的数据强制转换为准备绘图的形式。我怀疑包含我的数据的最简单格式(例如,如果使用 lattice)将是以下形式的数据框:
X1 Z1 Y1
X2 Z2 Y2
X3 Z3 Y3
X4 Z4 Y4
Xn Zn Yn
目前我有以下形式的数据:
x <- as.numeric(c(-2,-1,0,1,2,3,4,5,6,7,8,10,15,20,30))
y <- head(logspace(-3.6,-1.7,15),-1) + diff(logspace(-3.6,-1.7,15))
z <- list(c(seq.int(30,1,length.out=15)),c(seq.int(35,1,length.out=15)),c(seq.int(40,1,length.out=15)),c(seq.int(45,1,length.out=15)),c(seq.int(50,1,length.out=15)),c(seq.int(60,1,length.out=15)),c(seq.int(55,1,length.out=15)),c(seq.int(50,1,length.out=15)),c(seq.int(40,1,length.out=15)),c(seq.int(30,1,length.out=15)),c(seq.int(20,1,length.out=15)),c(seq.int(10,1,length.out=15)),c(seq.int(10,1,length.out=15)),c(seq.int(10,1,length.out=15)))
names(z) <- paste("x", 1:14, sep = "")
因此,您将看到我有两个数字数据形式(x 和 y 维度)和我的 z 值在一个与 y 长度相同的列表中。该列表包含与 x 长度相同的数字数据形式。例如:
length(x)
[1] 15
length(y)
[1] 14
length(z)
[1] 14
length(z$x1)
[1] 15
所以我非常基本的问题是,将这些数据强制转换为合适的形式(可能是一个名为“mydata”的数据框?)的最佳方法是什么,例如:
require(lattice)
contourplot(z ~ x * y, data = mydata)
会产生一个情节?