R图像"增加'x'和'y'值预期" - 但它们是

Dav*_*ein 1 plot r

我试图使用imageR中的函数.它报告"增加'x'和'y'值预期",但我相信我提供增加的'x'和'y'值.

我怀疑我不理解这个术语的含义,我的意思是"两个矢量'x'和'y',它们在空间(x,y)内构成一组完整的坐标对,并且首先排序通过'x'然后通过'y',使得x [i]> = x [i + k],{i,k> 0},并且类似于y."

这是一个最小的例子.

以下是以下内容diagnose.txt:

0   0   1
0   1   2
1   0   3
1   1   4
Run Code Online (Sandbox Code Playgroud)

我执行以下操作:

filename = "diagnose.txt"
t <- read.table(filename, header = FALSE, sep="\t", na.string='NaN')
colnames(t) <- c('x', 'y', 'z')
image(t$x, t$y, t$z)
Run Code Online (Sandbox Code Playgroud)

我收到的错误消息是"增加'x'和'y'值预期"

当然,这并不意味着我必须提供(不明确的)形式的数据:

0   0   1
1   1   2
2   2   3
3   3   4
Run Code Online (Sandbox Code Playgroud)

这甚至意味着什么?(PS:我也试过这个,只是为了好玩.你得到一个错误信息,就像你应该的那样,反映了坐标图像定义的不正确性.)

MrF*_*ick 6

绘图时image(),最终z参数需要是一个矩阵.然后,xy值对应于x由矩阵的行表示的值,并且y值对应于矩阵.如果您不提供这些值(您只需将矩阵传递给x它并完成它),R将指定0到1之间的值.

因此,将数据转换为矩阵的快速方法是使用基本函数xtabs.你可以跑

image(xtabs(z~x+y, t))
Run Code Online (Sandbox Code Playgroud)

图片

请注意,要使用此方法,必须x/y指定所有值.如果找不到特定单元格的组合,xtabs则返回0,这可能不是您要与该单元格关联的值.

因为你已经用0/1编码,所以会很好.但是如果你想让列在5和6以及行在10和11,你会这样做

image(5:6, 10:11, xtabs(z~x+y, t))
Run Code Online (Sandbox Code Playgroud)

这就是xy参数的用途,让你放置数据矩阵.我希望能够解决问题