【发布时间】:2020-03-19 13:44:51
【问题描述】:
我有一个如下所示的列表:
> class(cladelist)
[1] "list"
cladelist <- list( `46` = scan(text=' "KbFk2" "PeHa3" "PeHa51" "EeBi27" "EeBi17" "PeHa23" "PeHa44" "EeBi4" "EeBi26" "PeHa8" "PeHa26" "EeBi24" "EeBi3"
"EeBi20" "KbFk5" "PeHa15" "PeHa43" "PeHa11" "PeHa12" "PeHa49" "PeHa67" "PeHa17" "PeHa59" "KbFk4" "PeHa10" "PeHa55"
"PeHa73" "EeBi23" "PeHa78" "PeHa81" "EeBi11" "PeHa45" "EeBi6" "EeBi34" "PeHa25" "PeHa52" "PeHa62" "PeHa31" "PeHa65"
"PeHa47" "PeHa50" "PeHa34" "PeHa54" "PeHa22" "PeHa30"', what=""),
`47`= scan(text='
"KbFk2" "EeBi27" "EeBi17" "EeBi4" "EeBi26" "EeBi3" "EeBi20" "KbFk5" "KbFk4" "EeBi6" "EeBi34"', what=""),
`48`= scan(text=' "PeHa3" "PeHa51" "PeHa23" "PeHa44" "PeHa8" "PeHa26" "EeBi24" "PeHa15" "PeHa43" "PeHa11" "PeHa12" "PeHa49" "PeHa67"
"PeHa17" "PeHa59" "PeHa10" "PeHa55" "PeHa73" "EeBi23" "PeHa78" "PeHa81" "EeBi11" "PeHa45" "PeHa25" "PeHa52" "PeHa62"
"PeHa31" "PeHa65" "PeHa47" "PeHa50" "PeHa34" "PeHa54" "PeHa22" "PeHa30"', what=""),
`49`= scan(text=' "PeHa51" "PeHa23" "PeHa44" "PeHa8" "PeHa26" "EeBi24" "PeHa15" "PeHa43" "PeHa11" "PeHa12" "PeHa49" "PeHa67" "PeHa17"
"PeHa59" "PeHa10" "PeHa55" "PeHa73" "EeBi23" "PeHa78" "PeHa81" "EeBi11" "PeHa45" "PeHa25" "PeHa52" "PeHa62" "PeHa31"
"PeHa65" "PeHa47" "PeHa50" "PeHa34" "PeHa54" "PeHa22" "PeHa30"', what=""),
`50`= scan(text=' "EeBi27" "EeBi17" "EeBi4" "EeBi26" "EeBi3" "EeBi20" "KbFk5" "KbFk4" "EeBi6" "EeBi34"', what="") )
这些子列表中的每一个(即“46”、“47”等)都代表了我使用以下方法提取的树状图中的一个进化枝:
> cladelist <- clade.members.list(VB.phy, tips = FALSE, tip.labels = TRUE, include.nodes=FALSE)
我试图找到在每个子列表中找到的每个唯一对,并计算它在所有子列表(进化枝)之间出现的时间总和。
理想的输出将是一个如下所示的数据帧,其中计数是在所有子列表(进化枝)之间找到该对的次数:
Pair Count
Peha1/PeHa2 2
Peha1/PeHa3 4
PeHa1/PeHa4 7
PeHa1/PeHa5 3
我在寻找什么样的公式?
问题的背景(只是为了兴趣,没有添加那么多问题):
我的想法是我有一个包含 121 个这些元素(Peha1、KbFk3 等)的数据集。它们是我正在使用 3D 几何形态测量学评估的文物(我是一名考古学家)。问题是这些工件并不完整。它们被损坏或降级,因此提供的数据量不一致。因此,我不得不减少每个工件使用的数据,以获得合理但仍然不一致的样本量。通过选择某些变量进行评估,我可以获得有用的信息,但这需要我测试变量的每个组合。我的一项分析给了我使用分裂层次聚类的树状图。
计算每个进化枝之间发现的每一对的频率应该是每对工件的关系强度。然后我将这个计数除以进化枝的总数,以便为下一步标准化。一旦我为 X 个树状图完成此操作,我将为每对组合所有这些值,并将它们除以表示该对是否出现在树状图中的数字(如果它出现在 2 个树状图中,我除以 2 ),因为每一对都不会出现在我的每个测试中,我必须对其进行标准化,以便在我的测试中更频繁出现的更完整的工件不会有太多的权重。这应该允许我评估哪些对具有最强的关系。
【问题讨论】:
-
我无法确定预期的“配对”类型。 (并且我修改了您的示例,因此可以剪切粘贴以提供有效的 R 对象。)
-
这有点跑题了,但是成对计数和相关性在文本分析(TF-IDF 和其他方法)以及市场篮关联(包括在@ 987654326@包)。您也许可以在其他一些(不太有趣的)领域提升一些代码。