首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在R中随机获取纬度/经度数据

在R中随机获取纬度/经度数据
EN

Stack Overflow用户
提问于 2017-02-27 04:45:42
回答 1查看 1.1K关注 0票数 3

我模拟了一个网上零售市场的数据集。顾客可以在德国的不同商店(如慕尼黑、柏林、汉堡)购买他们的产品。在网上商店。为了从城市中获取纬度/经度数据,我使用了来自geocodeggmap package。但是网上购物的顾客可以在全国各地购买。现在,我想为网上购物生成德国境内的随机纬度/经度数据,然后用闪亮的传单绘制地图。有办法这样做吗?

我的df看起来如下:

代码语言:javascript
运行
复制
View(df)
ClientId   Store ... lat   lon
1          Berlin    52    13
2          Munich    48    11
3          Online    x     x  
4          Online    x     x

但我的目标是建立一个数据框架,例如:

代码语言:javascript
运行
复制
ClientId   Store ... lat   lon
1          Berlin    52    13
2          Munich    48    11
3          Online    50    12
4          Online    46    10

有没有办法获取这些随机纬度/经度数据并将其集成到我的数据框架中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-27 05:29:24

你的问题是双重的。首先,作为R的新手,您还没有习惯于所需的语义。从根本上说,你要做的是:

  • First,确定哪些订单来自在线
  • 第二次,为这些命令生成一个随机的lat和lon

首先,要识别符合标准的数据框架元素,可以使用which函数。因此,要在数据框架中找到存储列与“”相等的行,请执行以下操作:

代码语言:javascript
运行
复制
df[which(df$Store=="Online")]

要更新特定行的lat或lon,我们需要能够访问该列。要获取特定列的值,我们使用$。例如,要获取您使用的在线订单的lat值:

代码语言:javascript
运行
复制
df$lat[which(df$Store=="Online")]

太棒了!这个问题现在变得越来越复杂。对于新的值,您想要生成简单的值来完成演示,还是要提出新的逻辑来生成给定区域的空间结果?您表示希望在德国自己生成数据点,但是,要做到这一点超出了这个问题的范围。现在,我们将考虑在有界框中生成值并相应更新data.frame的简单示例。

要在给定范围内生成整数值,我们可以使用sample函数。假设您希望lat值在45和55之间,lon值在9到14之间,那么我们可以这样做:

代码语言:javascript
运行
复制
df$lat[which(df$Store=="Online")]<-sample(45:55,length(which(df$Store=="Online")))
df$lon[which(df$Store=="Online")]<-sample(9:14,length(which(df$Store=="Online")))

阅读这段代码后,我们使用随机数向量( 48:52 )更新了“联机”订单中的lat值,这是正确的长度(“联机”订单的数量)。

如果您想要更高的十进制精度,您可以使用类似的逻辑与来自均匀分布和runif分布的round函数进行类似的逻辑,以获得适当的精度。祝好运!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42477985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档