假设我有一个数据框
Id Name Price sales Profit Month Category Mode Supplier
1 1 A 2 5 8 1 X K John
2 1 A 2 6 9 2 X K John
3 1 A 2 5 8 3 X K John
4 2 B 2 4 6 1 X L Sam
5 2 B 2 3 4 2 X L Sam
6 2 B 2 5 7 3 X L Sam
7 3 C 2 5 11 1 X M John
8 3 C 2 5 11 2 X L John
9 3 C 2 5 11 3 X K John
10 4 D 2 8 10 1 Y M John
11 4 D 2 8 10 2 Y K John
12 4 D 2 5 7 3 Y K John
13 5 E 2 5 9 1 Y M Sam
14 5 E 2 5 9 2 Y L Sam
15 5 E 2 5 9 3 Y M Sam
16 6 F 2 4 7 1 Z M Kyle
17 6 F 2 5 8 2 Z L Kyle
18 6 F 2 5 8 3 Z M Kyle
我想使用
xtabs
,tapply
,table
或任何其他函数,这些函数将分别为我提供每个不同类别X,Y,Z
的表(即3个表)。每个表格将是供应商与模式的对比(即每个供应商那里有多少种不同的产品)看起来会像这样。
Category X
Mode
Supplier K L M
John 4 1 1
Sam 0 3 0
Kyle 0 0 0
Category Y
Mode
Supplier K L M
John 2 0 1
Sam 0 1 2
Kyle 0 0 0
Category Z
等等。
table(df$Supplier,df$Mode)
给出了在哪种模式下使用供应商的次数,但没有给出3个表,而是将所有表合并在一起。因此,我可以做三个单独的表而不是一个单独的表吗?
最佳答案
使用表,您可以执行以下操作:
with(df,table(Supplier,Mode,Category))
输出
, , Category = X
Mode
Supplier K L M
John 4 1 1
Kyle 0 0 0
Sam 0 3 0
, , Category = Y
Mode
Supplier K L M
John 2 0 1
Kyle 0 0 0
Sam 0 1 2
, , Category = Z
Mode
Supplier K L M
John 0 0 0
Kyle 0 1 2
Sam 0 0 0
关于r - R中变量的单独值的单独表/矩阵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32497174/