计算数据框中所有列对之间的点积

时间:2014-05-24 21:15:28

标签: r dataframe dot-product r-daisy

我有一个R data frame,哪些列是逻辑变量。 我需要在所有可能的列对之间制作某种点积

这来自文本语料库分析,其中数据框指示哪些文档(列)中存在哪些术语(行)。对于需要使用daisy包中的cluster或来自cosine的{​​{1}}来计算与每个可能的列对的距离的情况,有一些常见的快速解决方案包。

然而,我需要在所有列对之间使用某种点积:目标是计算两个文档中同时存在的单词数量(对于每个对)。

1 个答案:

答案 0 :(得分:4)

让我们使用这个例子:

df <- data.frame(x1 = c(T, T, F), x2 = c(F, F, F), x3 = c(T, F, T))

我会将data.frame转换为矩阵,然后计算交叉产品:

crossprod(data.matrix(df))
#    x1 x2 x3
# x1  2  0  1
# x2  0  0  0
# x3  1  0  2