假设我有许多分析检查,如下所示:
Check_ID Category Items Cost
000 Sugar 1 1
001 Milk 1 10
001 Butter 2 20
001 Bread 1 5
我希望在不手动设置行数的情况下使其看起来如下:
Check_ID Category.1 Items Cost Category.2 Items Cost Category.3 Items Cost
000 Sugar 1 1
001 Milk 1 10 Butter 2 20 Bread 1 5
我需要了解哪些产品通常合在一起。也许有另一种解决方案,但我很困惑。
提前致谢。
答案 0 :(得分:2)
您可以在创建独特的"时间"之后使用reshape
变量。使用我的" splitstackshape"中的getanID
很容易做到包:
library(splitstackshape)
getanID(mydf, "Check_ID")
# Check_ID Category Items Cost .id
# 1: 0 Sugar 1 1 1
# 2: 1 Milk 1 10 1
# 3: 1 Butter 2 20 2
# 4: 1 Bread 1 5 3
reshape(getanID(mydf, "Check_ID"), direction = "wide", idvar = "Check_ID", timevar = ".id")
# Check_ID Category.1 Items.1 Cost.1 Category.2 Items.2 Cost.2 Category.3 Items.3 Cost.3
# 1: 0 Sugar 1 1 NA NA NA NA NA NA
# 2: 1 Milk 1 10 Butter 2 20 Bread 1 5