在data.frame中指定空间坐标

在data.frame中指定空间坐标,r,plot,coordinates,bubble-chart,R,Plot,Coordinates,Bubble Chart,很傻,但我不知道我做错了什么: 我有一个带有两列的data.frame: df = data.frame(x = rep(1, 20), y = runif(20, 10,20)) 然后我想将x和y设置为空间坐标,这样我就可以在气泡图中绘制df。所以我试着: coordinates(df) = c("x","y") 但是: bubble(df) 给出此错误: Error in data.frame(x@data, x@coords) : arguments imply differi

很傻,但我不知道我做错了什么:

我有一个带有两列的
data.frame

df = data.frame(x = rep(1, 20), y = runif(20, 10,20))
然后我想将
x
y
设置为空间坐标,这样我就可以在
气泡图中绘制
df
。所以我试着:

coordinates(df) = c("x","y")
但是:

bubble(df)
给出此错误:

Error in data.frame(x@data, x@coords) : 
  arguments imply differing number of rows: 0, 20

要使气泡图有意义,您可能应该创建一个
空间点数据框

library(sp)
df <- data.frame(x = rep(1, 20), y = runif(20, 10,20))
data <- data.frame(variable = runif(20))
coordinates(df) <- ~ x + y
out <- SpatialPointsDataFrame(df, data)
bubble(out)
库(sp)

df您可能希望在示例中包括一个
库(sp)
。也许还有一个
set.seed(1)
)临时解决方法:在调用coordinates()函数之前,尝试在
df
中添加一个伪列。非常感谢Ricardo。很抱歉,我的示例中没有包含库(sp),虚拟列完成了这个任务。解释是什么?我想
bubble
需要
SpatialPointsDataFrame
而不仅仅是
SpatialPoints
library(sp)
df <- data.frame(x = rep(1, 20), y = runif(20, 10,20))
data <- data.frame(variable = runif(20))
coordinates(df) <- ~ x + y
out <- SpatialPointsDataFrame(df, data)
bubble(out)