我使用没有管理员权限的Windows,因此我无法在Windows PATH变量中设置路径。
ffmpeg.exe
文件位于我的"U:/ProgramFiles/ImageMagick-6.8.5-5/"
文件夹中。
我找到了如何使用saveVideo()
包的animate
函数:
ani.options(ffmpeg = shQuote('U:/ProgramFiles/ImageMagick-6.8.5-5/ffmpeg.exe'))
saveVideo({
par(mar = rep(3, 4))
for (i in seq(pi/2, -4/3 * pi, length = 12)) {
plot(0, 0, pch = 20, ann = FALSE, axes = FALSE)
arrows(0, 0, cos(i), sin(i))
axis(1, 0, "VI"); axis(2, 0, "IX")
axis(3, 0, "XII"); axis(4, 0, "III"); box()
}
},
video.name="mavideo.mp4",
outdir="U:/Data/Rtests/Animation")
但我还没有找到如何在一个块中使用选项fig.show=animate
编织Rmd文件,例如:
```{r clock, fig.width=7, fig.height=6, fig.show='animate'}
par(mar = rep(3, 4))
for (i in seq(pi/2, -4/3 * pi, length = 12)) {
plot(0, 0, pch = 20, ann = FALSE, axes = FALSE)
arrows(0, 0, cos(i), sin(i))
axis(1, 0, "VI"); axis(2, 0, "IX")
axis(3, 0, "XII"); axis(4, 0, "III"); box()
}
```
我试图仅通过更改hook_ffmpeg_html()
变量来修改ffmpeg.cmd
函数:
```{r}
hook_ffmpeg_html2 <- function (x, options)
{
........
ffmpeg.cmd = paste("-y", "-r", 1/options$interval,
"-i", fig.fname, mov.fname)
ffmpeg.cmd <- paste('"U:/ProgramFiles/ImageMagick-6.8.5-5/ffmpeg"', ffmpeg.cmd)
......
}
opts_knit$set(animation.fun = hook_ffmpeg_html2)
```
但是这个块不起作用,下面是错误消息:
label: unnamed-chunk-1
Warning in block_exec(params) :
failed to tidy R code in chunk <unnamed-chunk-1>
reason: Error in base::parse(text = text, srcfile = NULL) :
21:14: unexpected symbol
20: options$out.height), if ("controls" %in% mov.opts)
21: "controls=\\"controls
答案 0 :(得分:3)
(我将其从评论转移到答案。)
您不需要Admin privs来设置R当前进程的路径。Sys.setenv(path = "...")
会这样做。
答案 1 :(得分:2)
您必须拥有系统管理员权限才能修改PATH
。 Windows下有两种类型的环境变量:用户变量和系统变量。您不需要管理员权限来修改前者(您可以在该组中创建一个名为PATH
的变量),而后者只需要它。