【发布时间】:2016-02-23 06:16:34
【问题描述】:
这应该很简单,但我想不通:
我在每个单元格中都有一个带有整数值的方阵(全部与全部距离计算的结果)。我想根据单元格值对矩阵进行子集化,例如单元格 == 8,或单元格
foo[1:5, 1:5]
CASSLLAGAPEQFF CASSQVGLATGTQYF CASSSGTQYTQYF CASRITSGGKTQYF CATSDSRGKTQYF
CASSLLAGAPEQFF 0 999 999 8 999
CASSQVGLATGTQYF 999 0 999 999 999
CASSSGTQYTQYF 999 999 0 999 6
CASRITSGGKTQYF 8 999 999 0 999
CATSDSRGKTQYF 999 999 6 999 0
输入:
结构(c(0, 999, 999, 8, 999, 999, 0, 999, 999, 999, 999, 999, 0, 999, 6, 8, 999, 999, 0, 999, 999, 999, 6, 999, 0), .Dim = c(5L, 5L), .Dimnames = list(c("CASSLLAGAPEQFF", "CASSQVGLATGTQYF", "CASSSGTQYTQYF", "CASRITSGGKTQYF", "CATSDSRGKTQYF"), c("CASSSLLAGAPEQFF", “CASSQVGLATGTQYF”、“CASSSGTQYTQYF”、“CASRITSGGKTQYF”、“CATSDSRGKTQYF” )))
单元格 == 8 的预期结果将是一个 2x2 矩阵
CASSLLAGAPEQFF CASRITSGGKTQYF
CASSLLAGAPEQFF 0 8
CASRITSGGKTQYF 8 0
行名和列名与子集无关(但我想保留名称)。最直接的方法是什么?
感谢您的帮助!
【问题讨论】:
-
请使用
dput展示您所拥有的一个小例子。当你说“所有与所有距离计算”时,你的意思是你已经使用了dist,现在有一个类 dist 的对象? -
我使用 stringdistmatrix() 来创建这个对象。
-
请将
dput(foo[1:5, 1:5])添加到问题中并显示预期结果。