小编Bol*_*lle的帖子

R 将时间序列中的重复行与数据表中的不同列类型组合在一起

这个问题建立在另一个问题R 上,将重复行按 ID 与数据帧中的不同列类型组合在一起。我有一个包含一列time和其他一些不同类型(因子和数字)列的数据表。下面是一个例子:

dt <- data.table(time  = c(1, 1, 1, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4),
             abst  = c(0, NA, 2, NA, NA, NA, 0, 0, NA, 2, NA, 3, 4),
             farbe = as.factor(c("keine", NA, "keine", NA, NA, NA, "keine", "keine", NA, NA, NA, "rot", "blau")),
             gier  = c(0, NA, 5, NA, NA, NA, 0, 0, NA, 1, NA, 6, 2),
             goff  = as.factor(c("haus", "maus", "toll", NA, "haus", NA, "maus", NA, …
Run Code Online (Sandbox Code Playgroud)

datatable aggregate r time-series

9
推荐指数
2
解决办法
275
查看次数

在 R 中高效的 data.table 中更新一列两次

我有一个看起来像这样的数据表:

DT <- data.table(Zeit = c(0.024, 0.4, 0.05),
                 Gier = c(1, 2, 3),
                 GierVZ = c(1, 0, 1),
                 Quer = c(2, 4, 6))
Run Code Online (Sandbox Code Playgroud)

现在我想更新并向这个数据表添加一些列。但是我无法更新Gier两次,因为它会创建重复项并出现错误。

DT[, ':='(Zeit   = round(Zeit, digits = 2),
          Gier   = replace(Gier, Gier == 163.83, NA),
          GierVZ = factor(GierVZ, levels = c(0, 1), labels = c("positiv", "negativ")),
          Quer   = Quer * 9.81,
          Gier   = ifelse(GierVZ == "negativ", Gier * -1, Gier))]
Run Code Online (Sandbox Code Playgroud)

一般如何避免这种情况并仍然创建一些可读的快速代码?我相信对此有一个简单的答案。但我是数据表的新手,我认为(至少目前)它不像 dplyr 那样直观,但它对于我的大数据要快得多。

performance readability r data.table mutate

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

为不在包中的 R6 类创建 Rd 文档文件

我正在尝试创建一些包含一些 R6 类的脚本的文档。作为一个例子,我从这里使用名为“人”的 R6Class:https ://www.tidyverse.org/blog/2019/11/roxygen2-7-0-0/

我正在使用此功能/sf/answers/4135128231/来创建文档,而无需创建包。是否也可以将它用于 R6Classes 或者是否有另一种方法来实现这一目标?使用上述功能,我总是收到错误R6 Class (Person) without source references.

tidyverse官方博客https://www.tidyverse.org/blog/2019/11/roxygen2-7-0-0/Roxygen: list(r6 = FALSE)在description文件里写的解决方法不行,因为我没有包等等没有描述文件。

r function roxygen2 r6

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