gpt4 book ai didi

r - 转换 R 数据框中的列

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

我有一个表单交易数据的数据框

transactions <- data.frame(transaction=c("T1","T2","T2","T3","T3","T3"),sku=c("item_a","item_b","item_c","item_a","item_b","item_d"))

这给了我这个

  transaction    sku
1 T1 item_a
2 T2 item_b
3 T2 item_c
4 T3 item_a
5 T3 item_b
6 T3 item_d

我想得到的输出是这个数据框:

output <- data.frame(transaction=c("T1","T2","T3"),sku=c("item_a","item_b item_c","item_a item_b item_d"))

看起来像这样

  transaction                  sku
1 T1 item_a
2 T2 item_b item_c
3 T3 item_a item_b item_d

我尝试了各种方法,例如首先通过 transactions$transaction 在原始数据框上使用 split,但后来我无法从结果列表中提取 sku 数据。任何指向正确方向的指示都将不胜感激。

编辑:修复了输出数据框中的拼写错误。感谢 juba。

最佳答案

使用 data.table 真的很容易,它有一种打印列表列的好方法

library(data.table)
DT <- data.table(transactions)

DT[,list(sku = list(sku)) ,by=transaction]
## transaction sku
## 1: T1 item_a
## 2: T2 item_b,item_c
## 3: T3 item_a,item_b,item_d

如果你想把它们粘贴在一起,你也可以这样做

DT <- data.table(transactions)
DT[,list(sku = paste(sku, collapse = ', ')) ,by=transaction]
transaction sku
1: T1 item_a
2: T2 item_b,item_c
3: T3 item_a,item_b,item_d

sku 现在将是一个字符向量,而不是每个交易的列表

关于r - 转换 R 数据框中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14864907/

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