小编Ale*_*exP的帖子

通过链接 2 列设置 R data.table 行顺序

我试图弄清楚如何根据 2 列的链接对 R 数据表进行排序。

这是我的示例 data.table。

dt <- data.table(id = c('A', 'A', 'A', 'A', 'A')
         , col1 = c(7521, 0, 7915, 5222, 5703)
         , col2 = c(7907, 5703, 8004, 7521, 5222))

   id col1 col2
1:  A 7521 7907
2:  A    0 5703
3:  A 7915 8004
4:  A 5222 7521
5:  A 5703 5222
Run Code Online (Sandbox Code Playgroud)

我需要以 col1 = 0 开始的行顺序。第 2 行中的 col1 值应该等于前一行中 col2 的值,依此类推。

此外,通常应该始终有一个匹配的值来链接行顺序。但如果不是,它应该选择最接近的值(参见下面的第 4 和第 5 行)。

我正在寻找的结果如下所示:

   id col1 col2
1:  A    0 5703
2: …
Run Code Online (Sandbox Code Playgroud)

r data.table

8
推荐指数
2
解决办法
334
查看次数

美人鱼甘特图未显示在R降价标签中

我希望输入将甘特图嵌入到R markdown文件中.

我正在使用DiagrammeR包中的Mermaid函数来制作甘特图.我想将不同的图分隔成markdown文件中的选项卡.但是,图表仅显示在第一个选项卡上.如果我有第二个或第三个标签,则内容为空白,我无法弄清楚原因.

这是一些可重现的代码:

---
title: "Gantt Charts!"
output: 
   html_document

---

```{r results = 'hide', message = FALSE, error = FALSE, echo = FALSE, warning = FALSE}

library(DiagrammeR) 

```

### Personnel {.tabset .tabset-pills}

#### Joe Bob
```{r, echo = FALSE}

mermaid("
                gantt
                dateFormat  YYYY-MM-DD
                title Joe Bob's Chart

                section Project
                Design              :active,        proj_1,    2017-05-10, 2017-05-17
                Implementation      :               proj_2,    2017-05-17, 2017-05-31

                ")
```

#### John Doe
```{r, echo = FALSE}

mermaid("
                gantt
                dateFormat  YYYY-MM-DD
                title John Doe's Chart

                section Test
                Analysis …
Run Code Online (Sandbox Code Playgroud)

r gantt-chart r-markdown mermaid diagrammer

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

如何安装美人鱼以在Markdown中渲染流程图?

我正在尝试使用美人鱼在markdown文件中呈现流程图。我的GitHub存储库中有一个ReadMe.md文件,并且我想提供一个基本流程图来帮助描述内容。但是我不知道如何使它工作。有人能够发布一些更具体的说明,以呈现一个简单的示例吗?

在此链接(https://unpkg.com/mermaid@8.0.0-rc.8/README.md)中,有一个有关Mermaid安装的示例代码片段:

    ```
    https://unpkg.com/mermaid@7.1.0/dist/
    ```
Run Code Online (Sandbox Code Playgroud)

我包含了该代码,然后尝试在下一个代码段中制作流程图:

    ```
    graph TD;
        A-->B;
        A-->C;
        B-->D;
        C-->D;
    ```
Run Code Online (Sandbox Code Playgroud)

但是它所做的只是在我预览时在markdown文件中打印出该文本。

似乎有可能基于《美人鱼自述》:https : //github.com/knsv/mermaid/blob/master/README.md。但是,当我查看代码时,它实际上是流程图的图片,而不是代码的呈现。所以也许我要问的是不可能的?

将不胜感激!

markdown github readme mermaid

5
推荐指数
5
解决办法
4014
查看次数

如何评估字符串以过滤R data.table?

我希望在将一串过滤条件传递给data.table时提供一些帮助.我已经尝试了解析和评估的所有方式,似乎无法弄明白

我尝试使用iris数据集重新创建一个示例:

iris <- data.table(iris)

vars <- 'setosa'                    
filter <- 'Species == vars & Petal.Length >= 4'

data <- iris[filter, 
             list(sep.len.tot = sum(Sepal.Length), sep.width.total = sum(Sepal.Width)), 
             by = 'Species']
Run Code Online (Sandbox Code Playgroud)

因此,过滤器字符串中包含一个变量变量(基于循环而变化).我正在尝试根据过滤字符串过滤数据.

是否有一个data.table特定的方法来评估字符串?

希望有道理!

r data.table

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

如何将变量列名称传递给"by"命令?

我使用R中的data.table包来经常汇总数据.在这种特殊情况下,我只计算给定列组的数据集中出现的次数.但我无法合并循环来动态执行此操作.

通常,我会总结这样的数据.

data <- data.table(mpg)
data.temp1 <- data[, .N, by="manufacturer,class"]
data.temp2 <- data[, .N, by="manufacturer,trans"]
Run Code Online (Sandbox Code Playgroud)

但现在我想循环遍历我的数据集和绘图中感兴趣的列.我不想一遍又一遍地重复代码,而是想把它放在for循环中.像这样的东西:

columns <- c('class', 'trans')

for (i in 1:length(columns)) {
    data.temp <- data[, .N, by=list(manufacturer,columns[i])]
    #plot data
}
Run Code Online (Sandbox Code Playgroud)

如果我只想要感兴趣的列,我可以在循环中执行此操作并且它可以工作:

data.temp <- data[, .N, by=get(columns[i])]
Run Code Online (Sandbox Code Playgroud)

但是如果我想放入一个静态列名,就像制造商一样,那就打破了.我似乎无法弄清楚如何混合静态列名称和动态列名称.我环顾四周但找不到答案.

不胜感激任何想法!

r data.table

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