【问题标题】:Converting dataframe column data to matrix using R使用 R 将数据框列数据转换为矩阵
【发布时间】:2017-03-29 15:55:43
【问题描述】:

我在数据框中有以下格式的数据

我想把这些数据转换成这样的矩阵,这样我就可以使用 R 生成一个图表

请建议我该怎么做。此外,如果有任何包可用于生成图表

[![在此处输入图片描述][3]][3]

【问题讨论】:

    标签: r analytics igraph bayesian-networks


    【解决方案1】:

    不需要转换成矩阵,我们可以使用igraph包的现有数据,见例子:

    library(igraph)
    
    # convert to igraph object and plot
    g <- graph_from_data_frame(df1)
    plot(g)
    

    【讨论】:

      【解决方案2】:

      我们可以使用base R 做到这一点,首先将列转换为factor,并将levels 指定为两列中的unique 元素,然后只需执行table

      df1[] <- lapply(df1, factor, levels = un1)
      m1 <- table(df1[2:1])
      class(m1) <- "matrix"
      names(dimnames(m1)) <- NULL
      m1
      #             angle traingle rightangle similarangle pythogoreous end
      #angle            0        0          0            0            0   0
      #traingle         1        0          0            0            0   0
      #rightangle       0        1          0            0            0   0
      #similarangle     0        1          1            0            0   0
      #pythogoreous     0        0          0            1            0   0
      #end              0        0          0            0            1   0
      

      数据

      df1 <- structure(list(children.startnode = c("angle", "traingle", "traingle", 
      "rightangle", "similarangle", "pythogoreous"), children.endnode = c("traingle", 
      "rightangle", "similarangle", "similarangle", "pythogoreous", 
      "end")), .Names = c("children.startnode", "children.endnode"), row.names = c(NA, 
       -6L), class = "data.frame")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-25
        • 2018-10-06
        • 2012-05-20
        • 1970-01-01
        相关资源
        最近更新 更多