在尝试获取热图时R问题。错误:带宽必须严格为正

时间:2017-01-23 16:26:05

标签: r heatmap spss variance

我已经在SPSS中给出了这5个变量的数据。我尝试使用此数据库绘制热图,但我得到“错误:带宽必须严格为正”。

Brand XP Contact Impression Memorability
1   4   1   100 14
1   4   1   100 0
1   4   1   100 0    
1   4   1   99  97
1   4   1   100 60
1   4   1   100 0
1   4   1   100 100
1   4   1   100 60
1   4   1   73  75
1   4   1   100 67
1   4   1   99  1
1   4   1   100 0
1   4   1   100 0
1   4   1   100 7
1   4   1   100 0
1   4   1   74  33

我用以下内容导入数据:

Heatmap.data = as.data.set(spss.system.file('database.sav'))

并且有这个代码,因为我绘制了许多热图,但问题是使用XP = 4的热图。

for (i in 1: n.brands) {

createMap <- function(map, colorMap, colorContour, beginGradX, beginGradY, endGradX, endGradY, mapTitle)
{
  image(map, col = colorMap, axes = FALSE)
  contour(map, add = TRUE, col = colorContour, drawlabels = FALSE)
  axis(1, at = seq(beginGradX, endGradX, by=1))
  axis(2, at = seq(beginGradY, endGradY, by=1))
  box()
  title(mapTitle)
}

Heatmap.data.sub=Heatmap.data[Heatmap.data$brand == i,]
X = na.omit(Heatmap.data.sub$impression)/100
Y = na.omit(Heatmap.data.sub$memorability)/100

这是我收到错误的地方(在此行中):

smoothedMatrix = kde2d(X, Y, n = 500, lims = c(range(X), range(Y)))

我一直在搜索网络和stackoverflow,人们说,问题是方差为0.但在我的情况下,方差不是0,但Impression的方差= 137,Memorability的方差= 1190。

任何人都可以帮助我吗?

0 个答案:

没有答案