R代码:包含要递增的列号的列表
R Code: List containing column numbers to increment
我有一个包含列号的列表:
list = list(c(1,4,5),c(2,4,2))
matrix = matrix(rep(0,10),ncol=5)
> list
[[1]]
[1] 1 4 5
[[2]]
[1] 2 4 2
> matrix
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 0 0 0
[2,] 0 0 0 0 0
我想要实现的是:
> matrix
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 0 1 1
[2,] 0 1 0 1 0
但是因为我的列表很大,矩阵也很大,所以循环遍历不满足:
for (i in 1:length(list)) matrix[i,list[[i]]] = 1
我们可以尝试 sparseMatrix
从 library(Matrix)
library(Matrix)
sM <- sparseMatrix(i= rep(seq_along(list), lengths(list)),
j= unlist(list),
x= 1)
as.matrix(sM)
不确定在同一 list
元素中重复的列号是否有拼写错误。如果不是错字,还是要二进制输出
+(!!(as.matrix(sM)))
# [,1] [,2] [,3] [,4] [,5]
#[1,] 1 0 0 1 1
#[2,] 0 1 0 1 0
我有一个包含列号的列表:
list = list(c(1,4,5),c(2,4,2))
matrix = matrix(rep(0,10),ncol=5)
> list
[[1]]
[1] 1 4 5
[[2]]
[1] 2 4 2
> matrix
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 0 0 0
[2,] 0 0 0 0 0
我想要实现的是:
> matrix
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 0 1 1
[2,] 0 1 0 1 0
但是因为我的列表很大,矩阵也很大,所以循环遍历不满足:
for (i in 1:length(list)) matrix[i,list[[i]]] = 1
我们可以尝试 sparseMatrix
从 library(Matrix)
library(Matrix)
sM <- sparseMatrix(i= rep(seq_along(list), lengths(list)),
j= unlist(list),
x= 1)
as.matrix(sM)
不确定在同一 list
元素中重复的列号是否有拼写错误。如果不是错字,还是要二进制输出
+(!!(as.matrix(sM)))
# [,1] [,2] [,3] [,4] [,5]
#[1,] 1 0 0 1 1
#[2,] 0 1 0 1 0