首页 > 解决方案 > R数据框到矩阵,使得列名和行名来自参数

问题描述

我正在尝试在 R 中生成一个矩阵,其中 rownames 作为 dataframe 中的值,而 colnames 也是如此。由行值和列值命名的值应与数据框中的内容匹配。

  p      photo filter     time
1  1 winter.png  edge1 94.51301
2  1  rocks.png  edge1 65.58044
3  1 pupper.png  edge1 47.72965
4  2 winter.png  edge1 57.73461
5  2  rocks.png  edge1 37.07482
6  2 pupper.png  edge1 26.07539
7  3 winter.png  edge1 39.93299
8  3  rocks.png  edge1 27.81006
9  3 pupper.png  edge1 18.99070
10 4 winter.png  edge1 33.10323
11 4  rocks.png  edge1 22.59480
12 4 pupper.png  edge1 15.38318

因此,例如,我想制作类似的东西:

             1          2          3        4
winter.png   94.51301   37.07482
rocks.png    65.58044   37.07482   27.81006     
pupper.png   47.72965   26.07539

(由于我很懒,所以没有完全显示)

我有什么好的方法来生成定义的矩阵。

我希望将某些字段放置在矩阵的rownamesandcolnames部分中。我可以使用这些功能访问的东西。

标签: rmatrix

解决方案


我们可以使用spread

library(tidyverse)
df1 %>% 
     select(-filter) %>% 
     spread(p, time)

或使用xtabsfrombase R

xtabs(time ~ photo + p, df1)

推荐阅读