我想读一个表并创建另一个表,该表计算在多个特定列中出现唯一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)
我需要创建不同的数据帧然后合并吗?
您可以先将数据融化,然后将其制成表格.例如
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)