如何使用变量作为矩阵坐标将数据帧转换为矩阵?

DJa*_*ack 0 r matrix dataframe

我有一个包含3列的数据框:

df<-data.frame(x=c(1,1,1,2,2,2,2,3,3), y=c(1,2,3,1,2,3,4,1,2), percentage=c(50,25,25,15,35,25,25,55,45))
Run Code Online (Sandbox Code Playgroud)

看起来像:

  x y percentage
1 1 1         50
2 1 2         25
3 1 3         25
4 2 1         15
5 2 2         35
6 2 3         25
7 2 4         25
8 3 1         55
9 3 2         45
Run Code Online (Sandbox Code Playgroud)

第三列表示x-ID对象(1 col)内y-ID对象(2 col)的面积百分比。

我想得到一个带有x和y的矩阵(或与smthg相关),它们定义了坐标/下标和“百分比”,即矩阵的元素。

基本上,我想得到一个像这样的矩阵:

  1  2  3  4
1 50 25 25 0
2 15 35 25 25
3 55 45 0  0
Run Code Online (Sandbox Code Playgroud)

有一个简单的方法可以做到这一点吗?

DJa*_*ack 5

xtabs(percentage ~ x + y, data = df)
Run Code Online (Sandbox Code Playgroud)