R中可能的不同行组合
目前,我正在从事一个个人项目,我正试图找出如何根据R中可能的不同行组合,r,R,目前,我正在从事一个个人项目,我正试图找出如何根据购买日期不同地组合行 其中第20天和第25天重复两次,因此可能的结果(#数据帧)数量为2*1*2=4 这是我的数据框: ITEM PRICE PURCHASE_DATE 1 A 66 20 2 B 83 20 3 B 62 23 4 C 72 25 5 B 96
购买日期
不同地组合行
其中第20天和第25天重复两次,因此可能的结果(#数据帧)数量为2*1*2=4
这是我的数据框:
ITEM PRICE PURCHASE_DATE
1 A 66 20
2 B 83 20
3 B 62 23
4 C 72 25
5 B 96 25
我希望我的结果是:
ITEM PRICE PURCHASE_DATE
1 A 66 20
3 B 62 23
4 C 72 25
ITEM PRICE PURCHASE_DATE
1 A 66 20
3 B 62 23
5 B 96 25
ITEM PRICE PURCHASE_DATE
2 B 83 20
3 B 62 23
4 C 72 25
ITEM PRICE PURCHASE_DATE
2 B 83 20
3 B 62 23
5 B 96 25
下面是一个返回
列表的好方法。调用您的数据dd
:
ddsplit = split(1:nrow(dd), dd$PURCHASE_DATE)
rows = expand.grid(ddsplit)
result = apply(rows, 1, function(x) dd[x, ])
result
# [[1]]
# ITEM PRICE PURCHASE_DATE
# 1 A 66 20
# 3 B 62 23
# 4 C 72 25
#
# [[2]]
# ITEM PRICE PURCHASE_DATE
# 2 B 83 20
# 3 B 62 23
# 4 C 72 25
#
# [[3]]
# ITEM PRICE PURCHASE_DATE
# 1 A 66 20
# 3 B 62 23
# 5 B 96 25
#
# [[4]]
# ITEM PRICE PURCHASE_DATE
# 2 B 83 20
# 3 B 62 23
# 5 B 96 25
使用这些数据:
dd = read.table(text = " ITEM PRICE PURCHASE_DATE
1 A 66 20
2 B 83 20
3 B 62 23
4 C 72 25
5 B 96 25", header = T)
这似乎是一个潜在的不具代表性的例子。是否总是这样,只重复一个购买日期?如果重复多个购买日期怎么办?如果某些数据重复了不同的次数会怎样?输出的数据应该超过4帧,是吗?您已经显示了ABC的不同价格,但还有无数其他组合,是吗?事实上,应该有5*4*3
data.frames输出。谢谢@Gregor的回复。我刚刚修改了当前的案例。请回顾一下,并给我一些反馈。我需要的是允许我打印此输出的代码。@InfiniteFlashChess组合由唯一的购买日期决定。共有2个购买日期20
、1个购买日期23
、2个购买日期25
,因此2*1*2=4个可能的输出。感谢您的回复。我们根据独特的日期得到不同的组合。在本例中,我们有3个不同的日期:20、23和25,其中20和25各重复两次。因此,可能的数据帧数应该是:2*1*2=4。就像@Gregor提到的那样。