我正在使用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) 我有一个数据框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) 是否有可能(在vars包中或在其他 R 包中?)将非连续滞后包含到 var 模型中,即仅滞后 1 和 3。
到目前为止,看起来当我在 function 下设置 p = 3 时VAR,它包括 1 和 p 之间的所有连续滞后(即 1:3)。
我有“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' 的实际长度事先并不知道。
谢谢您的任何提示!
我正在创建一张世界地图:
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)
是否可以将鼠标悬停在任何国家上以查看其名称,或单击任何国家以查看其名称?
非常感谢!
我的目标是从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)
建议吗?谢谢!
我有自己的解决方案来解决我的问题,但它涉及循环并且相对较慢.有什么方法可以更快地在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)