我正在努力为矩阵分配值。我将索引存储在列表中
loc_x
,它是整数列表。我正在尝试为Nas
索引的列上的矩阵loc_x
分配数字。说loc_x = [1 2 3 5]
,如何在列Nas[1,]
上为[1,2,3,5]
分配1?
我尝试了Nas[1,c(loc_x)] = 1
或将loc_x
转换为矩阵或数组,但是失败了。我尝试将逗号放在loc_x
中,但是也失败了。一个for循环,但是我的数据集很大,所以我想知道是否有一种有效的方法来执行X。谢谢您的帮助!
答案 0 :(得分:0)
这是你的追求吗?
Nas <- matrix(0, ncol = 5, nrow = 2)
loc_x = c(1, 2, 3, 5)
Nas[1, loc_x] <- 1
Nas
#[,1] [,2] [,3] [,4] [,5]
#[1,] 1 1 1 0 1
#[2,] 0 0 0 0 0
说明:在为Nas
的元素建立索引之前,我们用matrix
和data = 0
和ncol
初始化nrow
。您将需要根据自己的具体情况调整ncol
和nrow
的值。
如果loc_x
是list
,则可以使用unlist
loc_x <- list(1, 2, 3, 5)
Nas[1, unlist(loc_x)] <- 1