R按索引列表调用一组列

时间:2018-08-28 03:13:04

标签: r

我正在努力为矩阵分配值。我将索引存储在列表中  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。谢谢您的帮助!

1 个答案:

答案 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的元素建立索引之前,我们用matrixdata = 0ncol初始化nrow。您将需要根据自己的具体情况调整ncolnrow的值。


如果loc_xlist,则可以使用unlist

loc_x <- list(1, 2, 3, 5)
Nas[1, unlist(loc_x)] <- 1