-1

I have the following toy dataset:

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)

I would like to figure out how many times an element z appears with an element x for each element y. The resulting dataset should look like the following:

     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

The solution needs to be scalable such that the number of elements in x,y, and z is irrelevant.

SocraticDatum
  • 349
  • 2
  • 4
  • 15

1 Answers1

3

Your desired result is just a table of x and y.

> 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

Maybe converting df to a data.frame might make more sense

> 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
Rich Scriven
  • 97,041
  • 11
  • 181
  • 245