在R中单独的表/矩阵用于单独的变量值

Jay*_*han 2 r

假设我有一个数据框

   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
Run Code Online (Sandbox Code Playgroud)

我想用xtabs,tapply,table或其它任何功能,这将给我的表中的每个不同的类别X,Y,Z(SO 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
Run Code Online (Sandbox Code Playgroud)

等等.

table(df$Supplier,df$Mode)
Run Code Online (Sandbox Code Playgroud)

给出供应商在哪种模式下使用的次数,但它没有给出3个表,它将所有表组合在一起.那么我能做些什么来拥有3个独立的表而不仅仅是一个表?

sco*_*coa 5

使用表格,您可以:

with(df,table(Supplier,Mode,Category))
Run Code Online (Sandbox Code Playgroud)

产量

, , 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
Run Code Online (Sandbox Code Playgroud)