我有一个R data frame
,哪些列是逻辑变量。
我需要在所有可能的列对之间制作某种点积。
这来自文本语料库分析,其中数据框指示哪些文档(列)中存在哪些术语(行)。对于需要使用daisy
包中的cluster
或来自cosine
的{{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