gpt4 book ai didi

r - Data.table:为 2 个因素的缺失组合添加行,而不会丢失相关的描述性因素

转载 作者:行者123 更新时间:2023-12-03 23:23:18 27 4
gpt4 key购买 nike

我有一个包含多个因素的数据表,例如:

dt <- data.table(station=c(1,1,2,2,3), station.type=c("X","X","Y","Y","Y"), stage=c("A","B","A","B","A"), value=10:14)

station station.type stage value
1: 1 X A 10
2: 1 X B 11
3: 2 Y A 12
4: 2 Y B 13
5: 3 Y A 14

每个站点都与一个类型相关联(我的实际数据有50多个站点和10种类型)。在该示例中,组合工位 3/阶段 B 缺失。我想为缺失的组合添加行,同时保留与电台关联的类型。

我从 Matt Dowle 对这个问题的回答开始: Fastest way to add rows for missing values in a data.frame?

setkey(dt, station, stage)
dt[CJ(station, stage, unique=TRUE)]

station station.type stage value
1: 1 X A 10
2: 1 X B 11
3: 2 Y A 12
4: 2 Y B 13
5: 3 Y A 14
6: 3 NA B NA

但是接下来我还得再和原来的数据表做一次merge,填入每个站的类型。

有没有一种方法可以在一行中完成所有操作 - 比如:

dt[CJ(cbind(station, station.type), stage, unique=TRUE)]

(当然这是行不通的,因为CJ把向量作为参数)

最佳答案

这是一种方法:

dt[, .SD[.(stage=c("A", "B")), on="stage"], by=.(station, station.type)]

关于r - Data.table:为 2 个因素的缺失组合添加行,而不会丢失相关的描述性因素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35777009/

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