gpt4 book ai didi

r - 转换数据框,以便列出的每个唯一事务成为单行

转载 作者:行者123 更新时间:2023-12-04 11:08:07 25 4
gpt4 key购买 nike

我有一个这样的数据框:

        trans_id   product_id
1 1 456
2 4 223
3 1 778
4 1 774
5 5 999
6 4 123

我需要对其进行转换,以便将所有 trans_id 列为单行,如下所示:

trans_id      V1       V2     V3
1 456 778 774
4 223 123
5 999

最佳答案

您应该添加一个辅助 ID 列。使用我的“splitstackshape”包中的 getanID 很容易。由于“splitstackshape”还加载了“data.table”,因此很容易使用 dcast.data.table 转换为宽格式:

library(splitstackshape)
dcast.data.table(
getanID(mydf, "trans_id"),
trans_id ~ .id, value.var = "product_id")
# trans_id 1 2 3
# 1: 1 456 778 774
# 2: 4 223 123 NA
# 3: 5 999 NA NA

等效的“dplyr”+“tidyr”方法类似于:

library(dplyr)
library(tidyr)

mydf %>%
group_by(trans_id) %>%
mutate(id = sequence(n())) %>%
spread(id, product_id)

关于r - 转换数据框,以便列出的每个唯一事务成为单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29753655/

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