从.csv创建共生矩阵

时间:2017-07-28 10:23:33

标签: r matrix

我试图创建一个共生矩阵,以查看我的数据库中经常关联的关键字。

数据看起来像这样,它是一个.csv文件。

id,    keywords
1,     apple;pear
2,     apple;cherry
3,     pear;cherry
4,     apple;cherry

我想获得类似的东西

          apple  pear  cherry
apple       0      1      2
pear        1      0      1
cherry      2      1      0

然后目标是使用d3.js来显示矩阵。

我已在R标记中发布此内容,因为我之前已经在某些课程中使用了它,所以我不是一个完整的新手。我在寻找解决方案的同时也可以使用python来做到这一点,但我的生活中从未触及它。

1 个答案:

答案 0 :(得分:1)

您可以使用tidyr(和magrittr)软件包和table函数。

library(tidyr)
library(magrittr)
df <- data.frame(id = 1:4, keywords = c("apple;pear", "apple;cherry", "pear;cherry", "apple;cherry"))

df2 <- df %>% separate(keywords, sep = ";", into = c("F1", "F2"))

这是在行/列名称中具有正确的级别。

df2$F1 %<>% factor() 
df2$F2 %<>% factor()

df2$F1 <- factor(df2$F1, levels = unique(c(levels(df2$F1), levels(df2$F2))))
df2$F2 <- factor(df2$F2, levels = unique(c(levels(df2$F1), levels(df2$F2))))

您现在可以使用表格(它不对称,因此请使用+

> table(df2$F1, df2$F2) + table(df2$F2, df2$F1)

         apple pear cherry
  apple      0    1      2
  pear       1    0      1
  cherry     2    1      0