相关疑难解决方法(0)

如何使用核心R操纵/访问"dist"类实例的元素?

R中的基本/公共类被称为"dist",并且是对称距离矩阵的相对有效的表示."matrix"但是,与对象不同,似乎不支持"dist"使用"["运算符通过索引对操作实例.

例如,以下代码不返回任何内容NULL,或错误:

# First, create an example dist object from a matrix
mat1  <- matrix(1:100, 10, 10)
rownames(mat1) <- 1:10
colnames(mat1) <- 1:10
dist1 <- as.dist(mat1)
# Now try to access index features, or index values
names(dist1)
rownames(dist1)
row.names(dist1)
colnames(dist1)
col.names(dist1)
dist1[1, 2]
Run Code Online (Sandbox Code Playgroud)

同时,在某种意义上,以下命令可以正常工作,但不要使访问/操作特定索引对值更容易:

dist1[1] # R thinks of it as a vector, not a matrix?
attributes(dist1)
attributes(dist1)$Diag <- FALSE
mat2 <- as(dist1, "matrix")
mat2[1, 2] <- 0
Run Code Online (Sandbox Code Playgroud)

一个解决方法 - …

indexing r class distance matrix

20
推荐指数
3
解决办法
1万
查看次数

R - 如何从距离矩阵中获取匹配元素的行和列下标

我有一个整数向量vec1,我正在使用dist函数生成一个远程矩阵。我想获取距离矩阵中某个值的元素的坐标(行和列)。本质上,我想获得相距 d 距离的一对元素。例如:

vec1 <- c(2,3,6,12,17)
distMatrix <- dist(vec1)

#   1  2  3  4
#2  1         
#3  4  3      
#4 10  9  6   
#5 15 14 11  5
Run Code Online (Sandbox Code Playgroud)

说,我对向量中相距 5 个单位的一对元素感兴趣。我想得到坐标 1 是行和坐标 2 是距离矩阵的列。在这个玩具示例中,我希望

coord1  
# [1] 5
coord2
# [1] 4
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种有效的方法来获取这些值而不涉及将dist对象转换为矩阵或遍历矩阵?

r distance matrix euclidean-distance

6
推荐指数
1
解决办法
3895
查看次数

标签 统计

distance ×2

matrix ×2

r ×2

class ×1

euclidean-distance ×1

indexing ×1