gpt4 book ai didi

r - 带有过滤条件的数据表分组依据

转载 作者:行者123 更新时间:2023-12-01 09:58:47 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Using data.table to aggregate

(1 个回答)


7年前关闭。




给定一个 data.table像下面一样,我想创建一个新列,即 value按地区求和,其中 period == 0 .

   region period value
1: US 0 10
2: US 1 11
3: Japan 0 12
4: Japan 1 13

典型 data.frame解决这个问题的方法是创建一个单独的框架,按周期过滤,按区域求和,然后用 region 与原始框架合并。作为关键。我想知道 data.table 中是否有一种单行方法使用 data.table groupby 语法。我最接近的是下面的两行方法。
x1 <- data.table(
region=c("US","US","Japan","Japan"),
period=c(0,1,0,1),
value=10:13)

x1[period==0,value0:=sum(value),by=region]
x1[,value0:=min(value0,na.rm=T),by=region]


region period value value0
1: US 0 10 10
2: US 1 11 10
3: Japan 0 12 12
4: Japan 1 13 12

最佳答案

我不确定这是否是“data.table”方式,但您可以尝试以下操作:

x1[, value0 := sum(value[period == 0]), by = region]
x1
# region period value value0
# 1: US 0 10 10
# 2: US 1 11 10
# 3: Japan 0 12 12
# 4: Japan 1 13 12

关于r - 带有过滤条件的数据表分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20021003/

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