将数据帧转换为并使其类似于R频率表

将数据帧转换为并使其类似于R频率表,r,R,我有一个具有频率计数的数据帧。我使用dplyr的groupby创建了这个数据帧 a beta 2 a gamma 2 b alpha 3 b beta 5 b gamma 9 c beta 3 c gamma 10 d beta 8 我试图创建一个频率表,它使用R的table函数聚合看起来像频率表的计数 a b c d alpha 0 3 0 0 beta 2 5

我有一个具有频率计数的数据帧。我使用dplyr的groupby创建了这个数据帧

a   beta    2
a   gamma   2
b   alpha   3
b   beta    5
b   gamma   9
c   beta    3
c   gamma   10
d   beta    8
我试图创建一个频率表,它使用R的table函数聚合看起来像频率表的计数

        a   b   c   d
alpha   0   3   0   0
beta    2   5   3   8
gamma   2   9   10  4
您可以尝试以下方法:

df <- data.frame(v1 = c('a', 'a', 'b', 'b', 'b', 'c', 'c', 'd'),
                 v2 = c('beta', 'gamma', 'alpha', 'beta', 'gamma', 'beta', 'gamma', 'beta'),
                 v3 = c(2, 2, 3, 5, 9, 3, 10, 8))
xtabs(v3 ~ v2 + v1, data = df)

df是
?xtabs
您想要什么?您可以用正确的行和列名创建一个零矩阵,然后执行
mat[cbind(df[,2],df[,1]]您看到的计数是原始数据的频率计数的集合