我有以下玩具数据集:
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中的元素数量不相关。
您想要的结果只是x
和y
的table
。
> 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