使用R,如何透视/转换元素是函数结果的数据集



我有以下玩具数据集:

z <- c(2,2,3,3,3,4,2,2)
y <- c(6,6,6,5,4,6,6,5)
x <- c(1,1,2,3,5,4,4,3)
df <- cbind(x,y,z)

我想弄清楚一个元素z和每个元素y的元素x出现了多少次。得到的数据集应该如下所示:

     y(4) y(5) y(6)
x(1)  0    0    2
x(2)  0    0    1 
x(3)  0    2    0
x(4)  0    0    2
x(5)  1    0    0

该解决方案需要具有可扩展性,使得x、y和z中的元素数量不相关。

您想要的结果只是xytable

> table(df[,"x"], df[,"y"])
#   
#    4 5 6
#  1 0 0 2
#  2 0 0 1
#  3 0 2 0
#  4 0 0 2
#  5 1 0 0

也许将df转换为data.frame可能更有意义

> df <- data.frame(df)
> with(df, table(x, y))
#    y
# x   4 5 6
#   1 0 0 2
#   2 0 0 1
#   3 0 2 0
#   4 0 0 2
#   5 1 0 0

最新更新