我试图使用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:我也试过这个,只是为了好玩.你得到一个错误信息,就像你应该的那样,反映了坐标图像定义的不正确性.)
绘图时image(),最终z参数需要是一个矩阵.然后,x和y值对应于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)
这就是x和y参数的用途,让你放置数据矩阵.我希望能够解决问题
| 归档时间: |
|
| 查看次数: |
4216 次 |
| 最近记录: |