目前我正在开发一个个人项目,我正在试图找出如何根据PURCHASE_DATE
不同地组合行。
如果第20天和第25天重复两次,那么可能的结果数(#data帧)将为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
答案 0 :(得分:2)
这是返回list
的好方法。调用您的数据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)