例如,以下代码返回空值、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]
同时,以下命令在某种程度上确实有效,但并不能更轻松地访问/操作特定的索引对数值:
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
一个解决方法——我想要避免——是先将
"dist"
对象转换为"matrix"
,对该矩阵进行操作,然后再将其转换回"dist"
。也就是说,这不是有关如何转换"dist"
实例为已定义常见矩阵索引工具的"matrix"
或其他类的问题;因为这在另一个SO问题中已经得到了多种回答。在
stats
包(或其他核心R包)中是否有专门用于索引/访问"dist"
实例元素的工具?
dist1[1:20]
和dist1[5] <- 100
等操作正常工作并不令人惊讶。经过一些努力,您可能可以编写一个二维版本,尽管我的原子知识有限。 - Ari B. Friedman