gpt4 book ai didi

r - 无论列的顺序如何聚合

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

我想按两列聚合一个数据框,以便它们的变化只存在一次。值列应该由聚合函数聚合,如 max()sum()
数据:

itemID1  |itemID2  |value
---------|---------|-------
B0001 |B0001 |1
B0002 |B0001 |1
B0001 |B0002 |2
B0002 |B0002 |0

结果可能是:
itemID1   |itemID2   |value
----------|----------|---------
B0001 |B0001 |1
B0001 |B0002 |3 #itemIDs could also be ordered in the other way
B0002 |B0002 |0

到目前为止,我已经在 SQL 中实现它以通过库 sqldf 使用它,但 sqldf 不支持 WITH 子句。

是否有可能直接在 R 中聚合这样的数据帧?

最佳答案

base R ,但它复制了数据,因为我在一份保持原件完好无损的副本上工作。

dat2 <- dat
dat2[1:2] <- apply(dat2[1:2], 1, sort)
aggregate(value ~ itemID1 + itemID2, dat2, sum)
# itemID1 itemID2 value
#1 B0001 B0001 1
#2 B0001 B0002 3
#3 B0002 B0002 0

现在您可以 rm(dat2)为了整理。

数据。
dat <-
structure(list(itemID1 = structure(c(1L, 2L, 1L, 2L), .Label = c("B0001",
"B0002"), class = "factor"), itemID2 = structure(c(1L, 1L, 2L,
2L), .Label = c("B0001", "B0002"), class = "factor"), value = c(1L,
1L, 2L, 0L)), .Names = c("itemID1", "itemID2", "value"), class = "data.frame", row.names = c(NA,
-4L))

关于r - 无论列的顺序如何聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46936592/

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