【问题标题】:R dataframe to matrix such that the colnames and rownames are from parametersR数据框到矩阵,使得列名和行名来自参数
【发布时间】:2018-12-14 00:59:17
【问题描述】:

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

  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 部分中。我可以通过这些功能访问的东西。

【问题讨论】:

  • @PoGibas 我看了那个答案,它没有我需要的信息,因为我正在尝试构建一个经过过滤的矩阵。
  • 如何过滤?你没有在你的问题中提到这一点。
  • @akrun 你向我展示了获取它的方法。不知道 xtabs,这是一个非常酷的功能。你为我节省了很多工作。

标签: r matrix


【解决方案1】:

我们可以使用spread

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

或者使用来自base Rxtabs

xtabs(time ~ photo + p, df1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多