我目前通过ssh连接到我在VIM中设置R的远程计算机.我在两边都使用ubuntu.
当我尝试从R绘制一些东西时,它将出现在远程机器而不是本地.有什么方法可以让R在当地制作吗?
我想迭代我的R markdown文件中的结果集列表.当我生成输出时,我想要包含一些文本,例如带有结果集名称的标题.
我发现一个hacky解决方案是直接在这样的文档中硬编码html输出
## All results
```{r loopResults, echo=FALSE, results='asis'}
results = list(result1 = data.frame(x=rnorm(3), y=rnorm(3)), result2=data.frame(x=rnorm(3), y=rnorm(3)))
for(res in names(results)) {
cat(paste("<h3>Results for: ", res, "</h3>>"))
plot(results[[res]]$x, results[[res]]$y)
}
Run Code Online (Sandbox Code Playgroud)
这似乎不是正确的做事方式,特别是因为我想在时间通过pandoc创建PDF文档,并且必须更改硬编码表达式.(我目前有便利功能,如h3(文本,类型)).
有没有更好的方法呢?
我发现自己在 R 中做了几次“条件左连接”。用一个例子来说明;如果您有两个数据框,例如:
> df
a b
1 1 0
2 2 0
> other.df
a b
1 2 3
Run Code Online (Sandbox Code Playgroud)
目标是最终得到这个数据框:
> final.df
a b
1 1 0
2 2 3
Run Code Online (Sandbox Code Playgroud)
到目前为止我写的代码:
c <- merge(df, other.df, by=c("a"), all.x = TRUE)
c[is.na(c$b.y),]$b.y <- 0
d<-subset(c, select=c("a","b.y"))
colnames(d)[2]<-b
Run Code Online (Sandbox Code Playgroud)
最终达到我想要的结果。
在四行中有效地执行此操作会使代码非常不透明。有没有更好,更不麻烦的方法来做到这一点?
我发现自己更新了我经常维护的r-packages的版本和日期.版本和日期都存在于DESCRIPTION,packageName-package.Rd以及man/packageName-package.Rd中.我忘了多次在一个文件中更新.这些最初是由package.skeleton命令生成的.是否有类似的命令/实用程序脚本来更新版本?
编辑:仔细检查后,不需要在Rd文件中自动生成的版本和日期.正确的日期和版本仍会显示在生成的手册中.显然,这只留下一个地方来更新这些信息.
r ×4
automation ×1
conditional ×1
knitr ×1
left-join ×1
markdown ×1
packages ×1
pandoc ×1
ssh ×1
ubuntu ×1
versioning ×1