【发布时间】:2015-04-19 02:51:37
【问题描述】:
假设我有一个包含因子“主题”和连续变量“a”和“b”的数据框。对于每个级别的主题,我从 a 和 b 创建一个距离矩阵:
data %>%
group_by(subject) %>%
select(a,b) %>%
do(dmat = as.matrix(dist(.)))
这将返回一个 n×2 数据框,其中 subject 和 dmat 作为列。我想做每个成对减法的矩阵范数。大致如下:
norm(data$dmat[[1]]-data$dmat[[2]])
norm(data$dmat[[1]]-data$dmat[[3]])
# etc etc
理想情况下,我会得到一个 n^2×3 数据框,前两列表示要比较的两个主题级别,第三列包含这个范数计算。
很抱歉没有提供样本数据集。我希望答案足够简单,但如果需要,我会尝试编写一些代码来生成一个。
【问题讨论】:
-
创建所有可能组合的组合(例如
combn(1:3, 2))并使用for或apply系列函数对其进行迭代。