【发布时间】:2016-06-02 15:56:38
【问题描述】:
请帮忙。我有一个如下数据框:
df <- data.frame("G"=c(1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7),
"C"=c(1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,1,0),
"SKU"=c("a","b","c","a","c","d","a","c","d","a","b","c","a","b","c","b","c","d","a","b","c"))
df
G C SKU
1 1 a
1 0 b
1 0 c
2 0 a
2 1 c
2 0 d
3 1 a
3 0 c
3 0 d
4 0 a
4 1 b
4 0 c
5 1 a
5 0 b
5 0 c
6 0 b
6 1 c
6 0 d
7 0 a
7 1 b
7 0 c
我想在这个数据框中找到唯一的“块”。例如,这里我们有三个块:(a,b,c)、(a,c,d) 和 (b,c,d)。我想用这些独特的块创建表,并为某个块中的每个 SKU 对所有“G”中的变量“C”求和。最后得到这样的数据框:
New_G SKU New_C
1 1 a 2
2 1 b 2
3 1 c 0
4 2 a 1
5 2 c 1
6 2 d 0
7 3 b 0
8 3 c 1
9 3 d 0
正如我所说,这里有三个唯一的块,New_G - 每个块的标识符,New_C - 特定块中每个 SKU 的“C”之和。 (例如,见第一行。SKU = "a", NEW_C = 2 - 这意味着在旧数据帧中 SKU "a" 在块 (a,b,c) 中具有变量 "C" = 1两次)(另一个例子:见第四行。同样 SKU = "a",但 NEW_C = 1 - 这意味着在旧数据帧中 SKU "a" 在块 (a,c,d) 中具有变量"C" = 1 一次)
如果我的问题不清楚,请现在让我问。
【问题讨论】: