在knitr中使用R Markdown是否与\Sexpr{}Sweave 相当?
我正在使用markdown文件的YAML标题将excerpt变量添加到我可以在其他地方使用的博客帖子中.在其中一个摘录中,我通过降价链接标记引用了早期的博客文章,我使用液体模板数据变量{{ site.url }}代替网站的基本URL.
所以我有类似的东西(有点修剪)
---
title: "Decluttering ordination plots in vegan part 2: orditorp()"
status: publish
layout: post
published: true
tags:
- tag1
- tag2
excerpt: In the [earlier post in this series]({{ site.url }}/2013/01/12/
decluttering-ordination-plots-in-vegan-part-1-ordilabel/ "Decluttering ordination
plots in vegan part 1: ordilabel()") I looked at the `ordilabel()` function
----
Run Code Online (Sandbox Code Playgroud)
但是,jekyll和Maruku md解析器不喜欢这个,这让我怀疑你不能在YAML头中使用液体标记.
是否可以在jekyll处理的页面的YAML标题中使用液体标记?
我从Maruku得到的错误是:
| Maruku tells you:
+---------------------------------------------------------------------------
| Must quote title
| ---------------------------------------------------------------------------
| the [earlier post in this …Run Code Online (Sandbox Code Playgroud) 我在R中有一些列,每行只有一个值,其余的将是NA的.我想将这些组合成一个具有非NA值的列.有谁知道这样做的简单方法.例如,我可以如下:
data <- data.frame('a' = c('A','B','C','D','E'),
'x' = c(1,2,NA,NA,NA),
'y' = c(NA,NA,3,NA,NA),
'z' = c(NA,NA,NA,4,5))
Run Code Online (Sandbox Code Playgroud)
所以我会的
'a' 'x' 'y' 'z'
A 1 NA NA
B 2 NA NA
C NA 3 NA
D NA NA 4
E NA NA 5
Run Code Online (Sandbox Code Playgroud)
而且我会得到
'a' 'mycol'
A 1
B 2
C 3
D 4
E 5
Run Code Online (Sandbox Code Playgroud)
包含NA的列的名称根据查询中较早的代码而更改,因此我将无法显式调用列名,但是我将包含NA的列的列名称存储为向量,例如,在此示例中cols <- c('x','y','z'),所以可以调用列data[, cols].
任何帮助,将不胜感激.
谢谢
我需要使用/学习R在uni上的新讲座,而我目前正在努力学习它的语法.我想绘制(通过curve)一个简单的函数,但我似乎无法使用内联lambda类函数.
我尝试过以下方法:
> curve( function(x) x^2 )
Error in curve(function(x) x^2) :
'expr' did not evaluate to an object of length 'n'
Run Code Online (Sandbox Code Playgroud)
然而,当我首先将函数存储在变量中时,它可以工作:
> quad <- function(x) x^2
> curve( quad )
Run Code Online (Sandbox Code Playgroud)
在R中是不允许这样的内联使用?有没有其他方法可以在不定义额外功能的情况下完成这项工作?谢谢!
我正在使用以下代码在R中创建一个boxplot:
boxplot(perc.OM.y ~ Depth, axes = F, ylim = c(-0.6, 0.2), xlim = c(3.5, 5.5),
lwd = 0.1, col = 8,
ylab = "Loss of Percent Organic Matter per Year", cex.lab = 1.5)
axis(1, at = c(3.5, 4, 5, 5.5), labels = c(" ", "Shallow", "Deep", " "),
cex.axis = 1.5)
axis(2, cex.axis = 1.5)
Run Code Online (Sandbox Code Playgroud)
问题是y轴上的数字标签当前与轴标题重叠.有没有办法在轴标题和轴号标签之间放置更多空间?
谢谢
当我在绘图上绘制网格线时,使用abline()网格线绘制数据.
有没有办法abline()在数据背后绘制线条?我觉得这会更好看.
例:
x <- seq(0, 10)
y <- x
plot(x, y, col = 'red', type = 'o', lwd = 3, pch = 15)
abline(h = seq(0, 10, .5), col = 'lightgray', lty = 3)
abline(v = seq(0, 10, .5), col = 'lightgray', lty = 3)
Run Code Online (Sandbox Code Playgroud)
产生的图表具有遍布数据的灰色网格线(红线).我希望红线位于灰线之上.
我的系统(服务器)中安装了大约4000个R软件包,其中大多数已经过时,因为它们是在R-3.0.0之前构建的.现在我知道了
update.packages(checkBuilt=TRUE, ask=FALSE)
Run Code Online (Sandbox Code Playgroud)
会更新我的所有包裹,但这太慢了.问题是用户不使用大多数软件包,现在他们要求我更新他们使用的软件包(比如字段).现在,如果我跑
install.packages("fields")
Run Code Online (Sandbox Code Playgroud)
即使字段依赖于地图,它也只会更新包字段而不更新包映射.因此当我尝试加载包字段时:
library("fields")
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息
Error: package ‘maps’ was built before R 3.0.0: please re-install it
Run Code Online (Sandbox Code Playgroud)
有没有办法升级字段,以便它还会自动更新包字段取决于?
我是R的新手,我试图将给定数据帧的2列相加,如果要求的两个元素都满足给定条件.为了弄清楚,我想要做的是:
> t.d<-as.data.frame(matrix(1:9,ncol=3))
> t.d
V1 V2 V3
1 4 7
2 5 8
3 6 9
> t.d$V4<-rep(0,nrow(t.d))
> for (i in 1:nrow(t.d)){
+ if (t.d$V1[i]>1 && t.d$V3[i]<9){
+ t.d$V4[i]<-t.d$V1[i]+t.d$V3[i]}
+ }
> t.d
V1 V2 V3 V4
1 4 7 0
2 5 8 10
3 6 9 0
Run Code Online (Sandbox Code Playgroud)
我需要一个高效的代码,因为我的真实数据帧有大约150000行和200列.这给出了一个错误:
t.d$V4<-t.d$V1[t.d$V1>1]+ t.d$V3[t.d$V3>9]
Run Code Online (Sandbox Code Playgroud)
"申请"是一种选择吗?我试过这个:
t.d<-as.data.frame(matrix(1:9,ncol=3))
t.d$V4<-rep(0,nrow(t.d))
my.fun<-function(x,y){
if(x>1 && y<9){
x+y}
}
t.d$V4<-apply(X=t.d,MAR=1,FUN=my.fun,x=t.d$V1,y=t.d$V3)
Run Code Online (Sandbox Code Playgroud)
但它也会出错.非常感谢您的帮助.
假设我有一些矩阵,例如:
> m = matrix(rep(c(0, 0, 1), 4), nrow = 4)
> m
[,1] [,2] [,3]
[1,] 0 0 1
[2,] 0 1 0
[3,] 1 0 0
[4,] 0 0 1
Run Code Online (Sandbox Code Playgroud)
如果我跑which,我得到正常指数列表:
> which(m == 1)
[1] 3 6 9 12
Run Code Online (Sandbox Code Playgroud)
我希望得到像矩阵索引这样的东西 - 每个索引都包含行号和列号:
[,1] [,2]
[1,] 3 1
[2,] 2 2
[3,] 1 3
[4,] 4 3
Run Code Online (Sandbox Code Playgroud)
这有什么简单的功能吗?此外,它应该以某种方式包含行和列名称:
> rownames(m) = letters[1:4]
> colnames(m) = letters[5:7]
> m
e f g
a 0 0 1 …Run Code Online (Sandbox Code Playgroud) 我想在R中设置一个3D矩阵.我想这很简单.但是,到目前为止我还没有找到解决方案.假设我们要创建一个365x6x4矩阵.同样重要的是我如何更改矩阵中的一个条目.假设我们想要将值204分配给元素[304,5,2].我非常感谢你的回答!
谢谢!最好的,F