小编Rei*_*son的帖子

在Sweave中是否存在相当于\ Sexpr {}的R Markdown?

在knitr中使用R Markdown是否与\Sexpr{}Sweave 相当?

markdown r knitr

45
推荐指数
2
解决办法
5479
查看次数

在YAML变量中包含jekyll/liquid模板数据?

我正在使用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标题中使用液体标记?

  1. 如果是,我在示例中做错了什么?
  2. 如果没有允许,谁还能怎么达到什么我打算?我目前正在我的笔记本电脑上开发我的网站,并且不想对基本URL进行硬编码,因为在我准备部署时它必须改变.

我从Maruku得到的错误是:

| Maruku tells you:
+---------------------------------------------------------------------------
| Must quote title
| ---------------------------------------------------------------------------
|  the [earlier post in this …
Run Code Online (Sandbox Code Playgroud)

ruby yaml liquid jekyll

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

合并列以删除NA

我在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].

任何帮助,将不胜感激.

谢谢

merge r na

35
推荐指数
5
解决办法
3万
查看次数

R中的lambda函数?

我需要使用/学习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中是不允许这样的内联使用?有没有其他方法可以在不定义额外功能的情况下完成这项工作?谢谢!

lambda r

34
推荐指数
3
解决办法
4万
查看次数

如何在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轴上的数字标签当前与轴标题重叠.有没有办法在轴标题和轴号标签之间放置更多空间?

谢谢

r

33
推荐指数
3
解决办法
8万
查看次数

如何使用数据后面的abline()绘制网格线?

当我在绘图上绘制网格线时,使用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)

产生的图表具有遍布数据的灰色网格线(红线).我希望红线位于灰线之上.

plot r

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

更新特定的R包及其依赖项

我的系统(服务器)中安装了大约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 cran

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

使用if语句循环数据帧行应用函数

我是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)

但它也会出错.非常感谢您的帮助.

loops if-statement r apply dataframe

32
推荐指数
3
解决办法
4万
查看次数

`which()`用于矩阵索引的函数

假设我有一些矩阵,例如:

> 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)

indexing r matrix

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

在R中设置3D矩阵并访问某些元素

我想在R中设置一个3D矩阵.我想这很简单.但是,到目前为止我还没有找到解决方案.假设我们要创建一个365x6x4矩阵.同样重要的是我如何更改矩阵中的一个条目.假设我们想要将值204分配给元素[304,5,2].我非常感谢你的回答!

谢谢!最好的,F

arrays element r

30
推荐指数
3
解决办法
5万
查看次数

标签 统计

r ×9

apply ×1

arrays ×1

cran ×1

dataframe ×1

element ×1

if-statement ×1

indexing ×1

jekyll ×1

knitr ×1

lambda ×1

liquid ×1

loops ×1

markdown ×1

matrix ×1

merge ×1

na ×1

plot ×1

ruby ×1

yaml ×1