不确定我的主题是否正确。
我有这样的数据集
Category Family Item Week
A A1 A11 1
A A2 A12 1
B B1 B11 1
C C2 C12 1
A A1 A11 2
A A2 A12 2
B B1 B11 3
C C2 C12 3
C C1 C11 3
A A2 A12 3
依旧......
我想知道这个表格中出现了两个不同项目的频率。
例如:
Week 1 has A11, A12, B11, C12
Week 2 has A11, A12
Week 3 has B11, B12, C11, A12
频繁的组合是
A12,A11 which came 2 times out of 3 weeks
B11, A12 which came 2 times out of 3 weeks
喜欢那个
我们能得到任何功能吗?
答案 0 :(得分:1)
您可以使用cbind.data.frame()
和table()
功能,查看以下不同的组合:
> table(cbind.data.frame(df$Week,df$Item))
df$Item
df$Week A11 A12 B11 C11 C12
1 1 1 1 0 1
2 1 1 0 0 0
3 0 1 1 1 1
> table(cbind.data.frame(df$Item,df$Week))
df$Week
df$Item 1 2 3
A11 1 1 0
A12 1 1 1
B11 1 0 1
C11 0 0 1
C12 1 0 1
> table(cbind.data.frame(df$Family,df$Week))
df$Week
df$Family 1 2 3
A1 1 1 0
A2 1 1 1
B1 1 0 1
C1 0 0 1
C2 1 0 1
> table(cbind.data.frame(df$Family,df$Item))
df$Item
df$Family A11 A12 B11 C11 C12
A1 2 0 0 0 0
A2 0 3 0 0 0
B1 0 0 2 0 0
C1 0 0 0 1 0
C2 0 0 0 0 2
> table(cbind.data.frame(df$Category,df$Item))
df$Item
df$Category A11 A12 B11 C11 C12
A 2 3 0 0 0
B 0 0 2 0 0
C 0 0 0 1 2
答案 1 :(得分:0)
这不是一个如此出色的解决方案(说实话,这是我可以想象的不舒服的格式),但为了好玩,我尝试了一个符合您所需输出的解决方案:
sortWith
答案 2 :(得分:0)
假设您想要一些简单的数组,您可以轻松调用并稍后进行调整,第一件事可以通过
完成。itemperweek=list()
for (i in 1:3){
itemperweek[[i]]=df$item[df$week==i]
}
第二个你也可以用
tableperweek13=table (df$Item[df$Week%in%c(1:3)])
tableperweek13[tableperweek13>1]
如果表中的级别多于1和2,我建议在第二行使用quantile() - 函数而不是1