小编use*_*534的帖子

ggmap :: get_map不允许我的地图角落的确切规格?

我正在使用R包ggmap.

?get_map 说:

location:地址,经度/纬度对(按此顺序),或左/下/右/顶部边界框

我的代码:

library(ggmap)
library(mapproj)

lat_bottom = 52.33  # bottom latitude of Berlin
lat_top    = 52.5   # top latitude of Berlin
lon_left   = 13.0   # left longitude of Berlin
lon_rigth  = 13.95  # right longitude of Berlin

mymap <- get_map(location = c(lon_left,lat_bottom,lon_rigth,lat_top),
source="google")
ggmap(mymap)
Run Code Online (Sandbox Code Playgroud)

为什么它会给我一个警告:

警告:给谷歌的边界框 - 空间范围只是近似值.将边界框转换为中心/缩放规范.(实验)

这是否意味着我无法创建具有这些精确角落的地图?

根据以下建议我尝试了这个:

lat_bottom = 52.33  # bottom latitude of Berlin
lat_top    = 52.68   # top latitude of Berlin
lon_left   = 13.08   # left longitude of Berlin
lon_rigth  = 13.77  # …
Run Code Online (Sandbox Code Playgroud)

r ggmap

12
推荐指数
1
解决办法
3829
查看次数

dplyr:在group_by对象上计算mean(summarize_each)时处理NAs

我有一个数据框md:

md <- data.frame(x = c(3,5,4,5,3,5), y = c(5,5,5,4,4,1), z = c(1,3,4,3,5,5),
      device1 = c("c","a","a","b","c","c"), device2 = c("B","A","A","A","B","B"))
md[2,3] <- NA
md[4,1] <- NA
md
Run Code Online (Sandbox Code Playgroud)

我想使用dplyr计算device1/device2组合的均值:

library(dplyr)
md %>% group_by(device1, device2) %>% summarise_each(funs(mean))
Run Code Online (Sandbox Code Playgroud)

但是,我得到了一些NAs.我希望忽略NA(na.rm = TRUE) - 我试过,但函数不想接受这个参数.这两行都会导致错误:

md %>% group_by(device1, device2) %>% summarise_each(funs(mean), na.rm = TRUE)
md %>% group_by(device1, device2) %>% summarise_each(funs(mean, na.rm = TRUE))
Run Code Online (Sandbox Code Playgroud)

r mean na dplyr

9
推荐指数
3
解决办法
8799
查看次数

VAR 中的非连续滞后数(R 包“vars”)

是否有可能(在vars包中或在其他 R 包中?)将非连续滞后包含到 var 模型中,即仅滞后 1 和 3。

到目前为止,看起来当我在 function 下设置 p = 3 时VAR,它包括 1 和 p 之间的所有连续滞后(即 1:3)。

finance r risk-analysis lag

5
推荐指数
1
解决办法
710
查看次数

多个矩阵的加权平均值 - 逐个元素

我有“mylist” - 相同大小矩阵的列表:

mylist <- vector("list", 5) 
set.seed(123)
for(i in 1:5){
  mylist[[i]] <- matrix(rnorm(9), nrow = 3)
}
Run Code Online (Sandbox Code Playgroud)

我还有一个权重向量“mywgts” - 与“mylist”长度相同

mywgts <- c(0.8, 0.9, 1, 1.1, 1.2)
Run Code Online (Sandbox Code Playgroud)

我需要逐个元素计算这些矩阵的加权平均值。结果将是一个 3 x 3 矩阵,其中第一个元素是:

mylist[[1]][1,1]*mywgts[1] + mylist[[2]][1,1]*mywgts[2] + 
mylist[[3]][1,1]*mywgts[3] + mylist[[4]][1,1]*mywgts[4] + 
mylist[[5]][1,1]*mywgts[5]
Run Code Online (Sandbox Code Playgroud)

我知道如何通过循环矩阵的所有元素来做到这一点。但我正在寻找一种更简洁/优雅的类似 R 的解决方案。另外 - 'mylist' 的实际长度事先并不知道。

谢谢您的任何提示!

r matrix mean weighted

4
推荐指数
1
解决办法
794
查看次数

将鼠标悬停在传单上的国家上以查看其名称

我正在创建一张世界地图:

library(leaflet)
library(rnaturalearth)
countries <- rnaturalearth::countries110
mymap <- leaflet(countries)
mymap %>% addPolygons(stroke = FALSE, smoothFactor = 0.2, fillOpacity = 1)
Run Code Online (Sandbox Code Playgroud)

是否可以将鼠标悬停在任何国家上以查看其名称,或单击任何国家以查看其名称?

非常感谢!

r mousehover leaflet

3
推荐指数
1
解决办法
532
查看次数

在dplyr中选择使用多个模式进行匹配

我的目标是从mydata中选择包含某些模式的几个列.

mydata <- data.frame(q1 = rnorm(10), q10 = rnorm(10), q12 = rnorm(10), q20 = rnorm(10))
Run Code Online (Sandbox Code Playgroud)

方法1 - 使用grep - 以简约的方式做我需要的东西:

myvars <- names(mydata)[grep("^q10|^q12", names(mydata))]
temp <- mydata[myvars]
tbl_df(temp)
Run Code Online (Sandbox Code Playgroud)

我试图在dplyr中完全做到这一点.但是,我没有找到任何更多的分析(比如grep)而不是:

temp <- cbind(select(mydata, starts_with("q10")), select(mydata, starts_with("q12")))
tbl_df(temp)
Run Code Online (Sandbox Code Playgroud)

代码太多了.我怎么能用"|"来使它?我尝试了以下但没有一个工作:

select(mydata, starts_with("q10|q12"))
select(mydata, starts_with(c("q10","q12")))
temp <- select(mydata, starts_with("q10","q12"))
select(mydata, starts_with(c("q10"))|starts_with(c("q12")))
Run Code Online (Sandbox Code Playgroud)

建议吗?谢谢!

regex grep r dplyr

2
推荐指数
1
解决办法
403
查看次数

在R中:重复数据帧的每个原始数据所需的次数(对于每一行可能不同)

我有自己的解决方案来解决我的问题,但它涉及循环并且相对较慢.有什么方法可以更快地在R中使用 - 使用一些更高级的包?谢谢!

# My data frame:
d <- data.frame(ID=1:10,a = 1:10,b = 5:14)
# Desired number of repeats for each row:
freq = c(2,2,3,3,3,4,5,5,5,6)
# i.e., Raw 1 of d should be repeated 2 times
# Raw 10 of d should be repeated 6 times.

# My current solution - looping through unique values of freq:
d.long<-NULL
myrepeats=unique(freq)
for(i in myrepeats){
  onecount<-d[freq==i,]
  for(ii in 2:i){
    temp<-d[freq==i,]
    onecount<-rbind(onecount,temp)
  }
  d.long<-rbind(d.long,onecount)
}
d.long<-d.long[order(d.long$ID),]
(d.long)
Run Code Online (Sandbox Code Playgroud)

r repeat

0
推荐指数
1
解决办法
1516
查看次数

标签 统计

r ×7

dplyr ×2

mean ×2

finance ×1

ggmap ×1

grep ×1

lag ×1

leaflet ×1

matrix ×1

mousehover ×1

na ×1

regex ×1

repeat ×1

risk-analysis ×1

weighted ×1