计算项目在多列中的每一列中出现的次数

sta*_*010 3 r dataframe

我想读一个表并创建另一个表,该表计算在多个特定列中出现唯一ID的次数.

例如,我有一个表,其中每一行显示一个事务,userId标识每个人的角色.

buyer      <- c("A", "A", "B", "A", "B", "C")
seller     <- c("C", "B", "C", "B", "C", "A")
negotiator <- c("B", "C", "D", "D", "A", "B")

df <- data.frame(buyer, seller, negotiator)
df
#    buyer seller negotiator
#  1     A      C          B
#  2     A      B          C
#  3     B      C          D
#  4     A      B          D
#  5     B      C          A
#  6     C      A          B
Run Code Online (Sandbox Code Playgroud)

然后,我想创建一个表,计算userId在事务中履行角色的次数.

#   id  asBuyer  asSeller  asNegotiator
#    A        3         1             1
#    B        2         2             2
#    C        1         3             1
#    D        0         0             2
Run Code Online (Sandbox Code Playgroud)

我需要创建不同的数据帧然后合并吗?

MrF*_*ick 5

您可以先将数据融化,然后将其制成表格.例如

dd<-reshape2::melt(df,0)
xtabs(~value+variable,dd)
#      variable
# value buyer seller negotiator
#     A     3      1          1
#     B     2      2          2
#     C     1      3          1
#     D     0      0          2
Run Code Online (Sandbox Code Playgroud)