R数据帧到矩阵,以便列名和行名来自参数

时间:2018-12-14 00:59:17

标签: r matrix

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

  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

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

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

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

1 个答案:

答案 0 :(得分:2)

我们可以使用spread

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

或使用xtabs中的base R

xtabs(time ~ photo + p, df1)