小编Wor*_*yth的帖子

使用data.table的X [Y]语法在R中交错连接/新分组/连接

我有两个data.tables:samples, resources

resourcessamplesvia primarysecondaryid 连接.我想首先通过主id将来自资源的信息与sample-table相结合,并且只有当它产生NA时,我才想要从同一个表(在一个data.table命令链中)中使用辅助资源.

# resources:
   primary secondary info
1:      17        42  "I"
2:      18        NA  "J"
3:      19        43  "K"

# samples:
   name primary secondary
1:  "a"      17        55
2:  "b"       0        42
3   "c"      18        42
Run Code Online (Sandbox Code Playgroud)

期望的结果是:

# joined tables:
   name info  # primary secondary
1:  "a"  "I"
2:  "b"  "I"
3:  "c"  "J"
Run Code Online (Sandbox Code Playgroud)

第一个连接通道primary很容易,它产生

# Update:
samples <- data.table(name = letters[1:3], 
                      primary = c(17, 0, …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

R R6类和UseMethod /泛型方法

我想使用R6类和泛型方法(UseMethod)将不同类(Small1,MyClassA和Small2,MyClassB)的小对象添加到MyClass的Big实例内的公共列表(MyListA和MyListB).

这适用于创建(Big是使用Small1和-2创建的),但之后失败:

> Big$AddObj(Small3) #produces:
Error in UseMethod("AddObj", x) :    no applicable method for 'AddObj'
 applied to an object of class "c('MyClassA', 'R6')"
Run Code Online (Sandbox Code Playgroud)

我不太确定我的错误是什么.以后如何为其他对象调用AddObj-Method?建议将非常感谢.

require('R6')

MyClass <- R6Class("MyClass",
   public = list(
     initialize = function(...) {
       for (x in list(...)) {AddObj(x)}
     },
     AddObj = function(x) {UseMethod("AddObj", x)},
     AddObj.MyClassA = function(x) {
       MyListA <<- c(MyListA, list(x))},
     AddObj.MyClassB = function(x) {
       MyListB <<- c(MyListB, list(x))},
     AddObj.default = function(x) {
       otherObjects <<- c(otherObjects, list(x))},
     Show = function() {
       print(methods(AddObj))
       if (length(MyListA)>0) print(MyListA) …
Run Code Online (Sandbox Code Playgroud)

oop generics r class

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

将来自两个数据帧的信息与dplyr组合在一起

我需要一些dplyr的帮助.我有两个数据框 - 一个是巨大的,有几个时间序列A,B,...在那里(LargeDF),另一个是(Categories)有时间间隔(左边界和右边界).

我想添加另一列LargeDF,标记为leftBoundary包含适当的边界值,如下所示:

LargeDF
   ts timestamp   signal     # left_boundary
1   A 0.3209338 10.43279     # 0
2   A 1.4791524 10.34295     # 1
3   A 2.6007494 10.71601     # 2
Run Code Online (Sandbox Code Playgroud)

Categories
   ts left right
1   A    0     1
2   A    1     2
3   A    2     3
Run Code Online (Sandbox Code Playgroud)

我想出的代码是

LargeDF %>%
  group_by(ts) %>%
  do(myFUN(., Categories))

# calls this ...
myFUN <- function(Large, Categ) {
  CategTS <- Categ %>%
    filter(ts == Large[1, "ts"][[1]])

  Large …
Run Code Online (Sandbox Code Playgroud)

r dplyr data.table

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

环境变量中的气流配置不起作用

我尝试使用ENV变量来配置连接URL,我有一个预先配置有alchemy_conn和broker_url等的ami,我已经将环境变量写入从/ ams实例中的/ etc / environment中,以覆盖airflow.cfg中的属性。文件。我也能够从python代码访问变量。

但是它在运行ariflow时似乎没有生效,也尝试重新启动该过程但没有用,它仍然指向airflow.cfg文件中的那个

environment-variables airflow airflow-scheduler

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

与R中的data.table的累积计算(例如累积相关)

在R,我有两个测量一个data.table redgreen,想计算其累积的相关性.

library(data.table)
DT <- data.table(red   = c(1, 2, 3, 4, 5,  6.5, 7.6, 8.7),
                 green = c(2, 4, 6, 8, 10, 12,  14,  16),
                 id    = 1:8)
Run Code Online (Sandbox Code Playgroud)

如何在一个data.table命令中获得以下输出?

...
> DT[1:5, cor(red, green)]
[1] 1                     # should go into row 5
> DT[1:6, cor(red, green)]
[1] 0.9970501             # should go into row 6, and so on ...
> DT[1:7, cor(red, green)]
[1] 0.9976889
Run Code Online (Sandbox Code Playgroud)

编辑: 我知道它可以通过循环解决,但我的data.table有大约100万行分组成较小的块,所以循环相当慢,我认为可能还有其他一些可能性.

r data.table

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