我认为这是一个关于R.的基本问题 .我有一个3列的数据框,其中前两列分别代表行和colunm索引,最后一列是值 . 简单地说,数据是稀疏矩阵格式 . 我想将其转换为标准矩阵格式 . 我该怎么办?代码 mat[data[,1],data[,2]]=data[,3] 不对 .
mat[data[,1],data[,2]]=data[,3]
目前还不清楚 data'. Assuming that 'data' is data.frame and 'mat' is a 矩阵中'mat'和 class 列的 class
data'. Assuming that 'data' is
and 'mat' is a
class
mat[as.matrix(data[1:2]) <- data[,3]
要么
mat[cbind(data[,1], data[,2])] <- data[,3]
OP的帖子中的方法导致了分配的LHS
mat[data[,1], data[,2]] # [,1] [,2] [,3] #[1,] 0 0 0 #[2,] 0 0 0 #[3,] 0 0 0
通过转换为带有 as.matrix 或 cbind 的 matrix 的索引,在LHS和RHS的 <- 上给出相同数量的元素
as.matrix
cbind
matrix
<-
mat[as.matrix(data[1:2])] #[1] 0 0 0
mat <- matrix(0, 5, 5) data <- data.frame(row = c(1, 1, 3), col = c(2, 5, 1), value = c(20, 15, 12))
1 回答
目前还不清楚
data'. Assuming that 'data' is
data.frameand 'mat' is a
矩阵中'mat'和class
列的class
要么
OP的帖子中的方法导致了分配的LHS
通过转换为带有
as.matrix
或cbind
的matrix
的索引,在LHS和RHS的<-
上给出相同数量的元素数据