假设我有一个数据框

   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


我想使用xtabstapplytable或任何其他函数,这些函数将分别为我提供每个不同类别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/

10-12 19:15