小编fc9*_*.30的帖子

使用R中的data.table将多个列添加到data.table with =,只有一个函数调用

这是对这个问题的直接扩展.我有一个数据集,我想根据变量x和y找到变量v的所有成对组合:

library(data.table)
DT = data.table(x=rep(c("a","b","c"),each=6), y=c(1,1,6), v=1:18)
        x y  v
     1: a 1  1
     2: a 1  2
     3: a 6  3
     4: a 1  4
     5: a 1  5
     6: a 6  6
     7: b 1  7
     8: b 1  8
     9: b 6  9
    10: b 1 10
    11: b 1 11
    12: b 6 12
    13: c 1 13
    14: c 1 14
    15: c 6 15
    16: c 1 16
    17: c 1 17 …
Run Code Online (Sandbox Code Playgroud)

r combn data.table

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

使用both和/ =函数的意外行为

我想data.table(1.9.6)包的unique-function中有一个错误:

小例子:

test <- data.table(a = c("1", "1", "2", "2", "3", "4", "4", "4"), 
                   b = letters[1:8], 
                   d = c(TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE))

   a b     d
1: 1 a  TRUE
2: 1 b  TRUE
3: 2 c FALSE
4: 2 d FALSE
5: 3 e  TRUE
6: 4 f FALSE
7: 4 g FALSE
8: 4 h FALSE

test[d == TRUE, `:=` (b = "M")]
test <- unique(test, by = c("a", "b"))

   a b     d
1: …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

带有 data.table 的滚动加权平均值

我想为 data.table 计算每组的滚动加权平均值,如下所示:

DT <- data.table(group = rep(c(1,2), each = 5), value = 1:10, weight = 11:20)
   group value weight
 1:     1     1     11
 2:     1     2     12
 3:     1     3     13
 4:     1     4     14
 5:     1     5     15
 6:     2     6     16
 7:     2     7     17
 8:     2     8     18
 9:     2     9     19
10:     2    10     20
Run Code Online (Sandbox Code Playgroud)

runner在这个问题Rolling over function with 2 vector arguments 中找到了一个带有包的工作解决方案:

my_weighted_mean <- function(data) {
  weighted.mean(data[, 1], w = …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

标签 统计

data.table ×3

r ×3

combn ×1