gpt4 book ai didi

r - 将缺失的行添加到数据表

转载 作者:行者123 更新时间:2023-12-04 10:00:27 25 4
gpt4 key购买 nike

我有一个数据表:

library(data.table)
(f <- data.table(id1=c(1,2,3,1,2,3),
id2=as.factor(c("a","a","b","c","b","d")),
v=1:6,
key=c("id1","id2")))
id1 id2 v
1: 1 a 1
2: 1 c 4
3: 2 a 2
4: 2 b 5
5: 3 b 3
6: 3 d 6
> str(f)
Classes ‘data.table’ and 'data.frame': 6 obs. of 3 variables:
$ id1: num 1 1 2 2 3 3
$ id2: Factor w/ 4 levels "a","b","c","d": 1 3 1 2 2 4
$ v : int 1 4 2 5 3 6
- attr(*, "sorted")= chr "id1" "id2"
- attr(*, ".internal.selfref")=<externalptr>

如何添加“缺失”的行?

即,对于每个现有的 id1我想要 id2 的所有可能值存在(使用 v=0 )。

因此,我需要添加 6 行( id1 的 3 个可能值 * id2 的 4 个可能值 - 6 个现有行)。

最佳答案

我会在 id1 中获得唯一值和 id2并使用 data.table 进行连接的交叉连接功能CJ如下:

# if you've already set the key:
ans <- f[CJ(id1, id2, unique=TRUE)][is.na(v), v := 0L][]

# or, if f is not keyed:
ans <- f[CJ(id1 = id1, id2 = id2, unique=TRUE), on=.(id1, id2)][is.na(v), v := 0L][]

ans

关于r - 将缺失的行添加到数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22462405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com