小编Phi*_*hil的帖子

Knitr不会编译PDF:"工具中的错误:: file_path_as_absolute(output_file)"

我在markdown中创建了一个报告,并使用该函数render()将代码编译成PDF.它在一个月前工作正常,但是当我现在运行代码时,它给了我一个错误:

Latexmk:这是Latexmk,John Collins,2016年4月22日,版本:4.45.创建输出:output/Medborgerskabstabeller99.pdf

tools :: file_path_as_absolute(output_file)出错:文件'output/Medborgerskabstabeller99.pdf'不存在

我用来创建PDF的渲染命令如下所示:

outfile <- file.path("output",paste0("Medborgerskabstabeller99"))
render(input = "Medborgerskabstabeller.Rmd",
       encoding = "UTF-8",
       output_file = paste0(outfile,".pdf"))
Run Code Online (Sandbox Code Playgroud)

首先,代码工作时没有出现"Latexmk"消息.

其次,我不知道为什么它说"Medborgerskabstabeller99.pdf"不存在,当它上面说它刚刚创建了文件时.

任何关于这个问题的建议都将受到高度赞赏!

pdf latex r knitr r-markdown

27
推荐指数
2
解决办法
2万
查看次数

Knitr:人物传奇太大了

当我编写Tufte讲义pdf时,一些数字的传说往往太大.我正在编织一个fig.fullwidth=TRUE部分,并将fig.width=参数从2改为50,看看它们是否有任何区别.当我指定时,fig.width=2我最终得到一个小图,并且图例会大幅扩展以填充空间:

fig.width = 2的针织图

显然,下一步是尝试更大fig.width但是这些在大约之后停止产生任何差异fig.width=10(尽管仍然更好):

fig.width = 10的针织图

我假设fig.width是以英寸为单位的宽度,所以这是有意义的,因为我使用的纸张尺寸是A4大约8英寸.

我的问题是,如何进一步减小图例的大小,使其占用更合适的尺寸?我试过手动设置字体大小:

theme(legend.title = element_text(size = 9),
      legend.text = element_text(size = 8))
Run Code Online (Sandbox Code Playgroud)

但是这些对编织者的传说没有任何影响(尽管它们会在按预期手动绘制时影响绘图).

最小的可重复示例(粘贴到.Rmd文件和编织):

---
title: "knitr: figure legend too big"
documentclass: article
classoption: a4paper
output: rmarkdown::tufte_handout
---

  ```{r setup, include=FALSE}
require("knitr")
require("rgdal")
require("rgeos")
require("maptools")
require("ggplot2")
```

```{r, fig.cap="test", fig.fullwidth=TRUE, fig.width=10}
# About 650k
download.file("https://census.edina.ac.uk/ukborders/easy_download/prebuilt/shape/England_gor_2011_gen.zip",
              destfile = "regions.zip")
unzip("regions.zip")
regions <- readOGR(dsn = ".", "england_gor_2011_gen")
regions@data$test <- as.character(1:nrow(regions@data))

regions_f <- fortify(regions, region = "name")
regions_f <- merge(regions_f, regions@data, …
Run Code Online (Sandbox Code Playgroud)

r figure ggplot2 knitr

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

使用R的溶解多边形没有正确绘图

我正在尝试在R中执行解散.我之前在QGIS中已经完成了这项工作,但我想在R中实现这一点,以便在可能的情况下与我的其他工作流程集成.

我有一个带有小地理多边形的ESRI shapefile(输出区域,如果你熟悉英国人口普查地理).我还提供了一个查找表,其中列出了所有OA代码及其关联的聚合地理代码.

我无法提供我正在处理的实际文件,但可比较的文件和下面的最小可重复示例:

和代码:

require("rgdal")  # for readOGR
require("rgeos")  # for gUnion
require("maptools")

unzip("soa.zip")
soa <- readOGR(dsn = "soa", "england_oac_2011")
proj4string(soa) <- CRS("+init=epsg:27700")  # British National Grid

lookup <- read.csv("oa-soa.csv")

slsoa <- gUnaryUnion(soa, id = lookup$LSOA11CD)
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

slsoa <- unionSpatialPolygons(soa, lookup$$LSOA11CD)
Run Code Online (Sandbox Code Playgroud)

但我的理解是,由于我安装了(R)GEOS,因此无论如何都使用了rgeos包中的gUnion方法.

所以,我的问题是溶解似乎有效; 我没有收到错误消息,而length()函数表明我现在有更少的多边形:

length(soa@polygons)    # 1,817
length(slsoa@polygons)  # should be 338
Run Code Online (Sandbox Code Playgroud)

但是这些图看起来是相同的(即内部溶解没有起作用),如以下两个图所示:

plot(soa)
plot(slsoa)
Run Code Online (Sandbox Code Playgroud)

我环顾了一下互联网和stackoverflow,看看我是否可以解决我的问题,发现了几篇但没有成功的文章.

有没有人知道我做错了什么以及为什么情节不正常?

非常感谢.

gis r polygon

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

自编包:spacePolygonsDataFrame的加载图方法

我正在编写自己的R包,想绘制一个spatialPolygonsDataFrame对象.如果我写它作为一个脚本,我想简单地加载必要的包(maptools,rgdal,和rgeos用)library()和情节有plot(x).

当写一个包来构建使用library() 是不建议,代替它的是通常通过将其加入到加载包Imports:NAMESPACE.如果我这样做,我收到以下错误:

as.double(y)出错:无法强制将'S4'强制转换为'double'类型的向量

如果编写脚本,则通过加载maptools更正此问题library().

我知道你可以加载单个方法用ImportMethodsFromNAMESPACE这样试图从导入情节方法maptools使用这种方法,但有没有运气.当我在看NAMESPACE的的maptools包我找不到出口的阴谋方法.我已经看到有一个plot.Spatial功能,我试图导入到我NAMESPACE没有成功:

请求的"maptools"中找不到任何方法:plot.Spatial

最后,我已经尝试添加maptoolsDepends:而不是Imports:我的NAMESPACE,这确实工作.这是规范的方式吗?为一种方法附加整个包装似乎有点过分(另外我不知道哪些功能被屏蔽了等等).加载必要工具以在自己编写的函数中绘制地图的最佳方法是什么?

编辑1:针对@哈克-R的问题,我不知道是否plot.Spatial是我需要的,或者即使它是正确的唯一方法.这是我有根据的猜测,这将使我能够绘制spatial对象.

r spatial package

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

dplyr :: count()多列

我有以下数据集:

dat = structure(list(C86_1981 = c("Outer London", "Buckinghamshire", 
NA, "Ross and Cromarty", "Cornwall and Isles of Scilly", NA, 
"Kirkcaldy", "Devon", "Kent", "Renfrew"), C96_1981 = c("Outer London", 
"Buckinghamshire", NA, "Ross and Cromarty", "Not known/missing", 
NA, "Kirkcaldy", NA, NA, NA), C00_1981 = c("Outer London", "Inner London", 
"Lancashire", "Ross and Cromarty", NA, "Humberside", "Kirkcaldy", 
NA, NA, NA), C04_1981 = c("Kent", NA, NA, "Ross and Cromarty", 
NA, "Humberside", "Not known/missing", NA, NA, "Renfrew"), C08_1981 = c("Kent", 
"Oxfordshire", NA, "Ross and Cromarty", "Cornwall and Isles …
Run Code Online (Sandbox Code Playgroud)

r dplyr

0
推荐指数
2
解决办法
3498
查看次数

标签 统计

r ×5

knitr ×2

dplyr ×1

figure ×1

ggplot2 ×1

gis ×1

latex ×1

package ×1

pdf ×1

polygon ×1

r-markdown ×1

spatial ×1