剧本:
library(raster)
places = data.frame(x=c(0.2, 0.7), y=c(0.2, 0.7), name=c('A','B'), stringsAsFactors=F)
plot(raster(volcano))
points(places$x, places$y, pch=16)
text(places$name, places$x, places$y-0.1)
Run Code Online (Sandbox Code Playgroud)
最后一行失败并显示消息:In xy.coords(x, y, recycle = TRUE) : NAs introduced by coercion。我认为这是由于混合图形库造成的,但text光栅中的函数似乎仅适用于光栅格式的文本对象。感谢您提供有关如何在栅格图上添加离散点的建议。
我正在研究R中动画创作的可能性.{Animation}包似乎主要是ffmpeg和imagemagick的R平台.我发现创建单个图像帧的唯一参考是嵌套plot()在循环内.但是,鉴于png()渲染器的速度性能较差,这对于生成更复杂的绘图似乎是一个不可行的缓慢过程,特别是对于包括地图对象的绘图 - 例如:
library(maptools)
data(wrld_simpl)
starttime = Sys.time()
for(i in 1:10){
png(paste('frames/', i, '.png', sep=''))
plot(wrld_simpl, col='grey85', bg = 'white', border='white')
points(sample(-180:180, 50), sample(-90:90, 50), col='red', pch=16, cex=2)
title('poxy map')
dev.off()
}
print(Sys.time() - starttime)
Run Code Online (Sandbox Code Playgroud)
产生10帧并且:
Time difference of 9.763794 secs
Run Code Online (Sandbox Code Playgroud)
我不明白为什么R渲染速度如此之慢 - 按照这个速度,以25fps渲染2分钟视频需要45分钟左右,这对于这个相对简单的地图示例来说似乎很慢.包装apply并不快.有没有人知道plot更有效地包装的方法,或者可能是在渲染了不变的元素之后中途保存了一个情节?
有没有办法提取与特定值匹配的像素的网格位置或(最好是具有明确范围的栅格)点/质心坐标?我几乎有一个相当低效的工作流程,转换为矩阵并使用它which(mtrx == max(mtrx), arr.ind = TRUE)来获取矩阵位置,但这(a)丢失了地理空间信息,(b)导致数据在矩阵转换过程中旋转 90 度,这两者都需要额外的代码使其工作并显着减慢计算速度。是否有任何人都知道的等效栅格工作流程?
我很难找到正确的Google自定义搜索引擎(CSE)URL调用格式,以XML格式返回结果(使用他们的免费服务每天拨打100个电话).我已经建立了一个帐户和CSE.所以现在我有一个公共URL https://www.google.com/cse/publicurl?cx=010317493064298903457:5bsx2whinf8来搜索BBC新闻.但我无法从文档中弄清楚如何开发URL调用以返回XML格式的结果.
https://www.google.com/cse/publicurl?cx=010317493064298903457:5bsx2whinf8&q=lon??don&start=0&num=10&output=xml_no_dtd (基于CSE设置选项中提供的代码)在html框架中给出结果.
http://www.google.com/search?start=0&num=10&q=london&client=google-csbe&output=??xml_no_dtd&cx=010317493064298903457:5bsx2whinf8(遵循XML API示例)也返回HTML.
非常感谢我出错的想法.
考虑以下:
图书馆(ggplot2)
df = data.frame(x = rep(0,9), y = rep(0,9), alp = c(1:8/20,1))
ggplot(df) +
geom_point(aes(x, y, alpha=alp), size = 20, col = 'red') +
theme_minimal() + facet_wrap(~ alp) + guides(alpha = F)
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,有虚幻的轮廓。它使叠加许多低透明度点看起来有点像青蛙生成。这只是Mac的事情吗?知道如何删除它吗?
所以我们有这种行为:
any(c(TRUE, FALSE, NA))
#> [1] TRUE
any(c(TRUE, NA))
#> [1] TRUE
any(c(FALSE, NA))
#> [1] NA
Run Code Online (Sandbox Code Playgroud)
有人知道返回NA而不是FALSE的理由吗?IMO该函数应该测试是否存在非FALSE值,NA不是.
coord_polar 曲线线,有时当您可能不希望时(即当空间被认为是离散的而不是连续的时):
iris %>% gather(dim, val, -Species) %>%
group_by(dim, Species) %>% summarise(val = mean(val)) %>%
ggplot(aes(dim, val, group=Species, col=Species)) +
geom_line(size=2) + coord_polar()
Run Code Online (Sandbox Code Playgroud)
一个以前的解决方法此不再有效。有人对更新的解决方法有任何想法吗?
dat = data.frame(x = 1:4, y = ordered(c(4,'>5',1,1), levels = c(1:5, '>5')), grp = 1)
ggplot(dat, aes(x, y, group=grp)) + geom_step() +
scale_y_discrete(breaks = levels(dat$y), labels = levels(dat$y))
Run Code Online (Sandbox Code Playgroud)
我想从正则表达式中提取下面的第一句话.我想要实现的规则(我知道它不是通用解决方案)是从字符串启动中提取^(包括)以小写字母或数字开头的第一个句点/感叹号/问号.
require(stringr)
x = "Bali bombings: U.S. President George W. Bush amongst many others has condemned the perpetrators of the Bali car bombing of October 11. The death toll has now risen to at least 187."
Run Code Online (Sandbox Code Playgroud)
到目前为止,我最好的猜测是在这种情况下尝试实现非贪婪的字符串匹配前方法失败:
str_extract(x, '.+?(?=[a-z0-9][.?!] )')
[1] NA
Run Code Online (Sandbox Code Playgroud)
任何提示非常感谢.
谁能提取这些日期?
class(Seatbelts)
#> [1] "mts" "ts"
Seatbelts
#> DriversKilled drivers front rear kms PetrolPrice VanKilled law
#> Jan 1969 107 1687 867 269 9059 0.10297181 12 0
#> Feb 1969 97 1508 825 265 7685 0.10236300 6 0
#> Mar 1969 102 1507 806 319 9963 0.10206249 12 0
...
Seatbelts[,0]
#>
#> Jan 1969
#> Feb 1969
#> Mar 1969
...
rownames(Seatbelts)
#> NULL
row.names(Seatbelts)
#> NULL
row.names(as.matrix(Seatbelts))
#> NULL
Run Code Online (Sandbox Code Playgroud)
我很困惑。除了上面之外还尝试了很多。
相关但无帮助: