R-替换数组的第一个`m`元素



我有一个长度为 n的数组。我想用0替换其第一个m<n元素。显然,一个简单的循环可以执行此任务:

m<-100
n<-1000
x<-runif(n)
for(i in 1:m){
  x[i]<-0
}

是否有更有效的解决方案?谢谢!

如果'm'是元素的索引,请使用

replace(x, 1:m, 0)

x * rep(c(0, 1), c(m, n - m))

x * (seq_len(n) > m)

编辑:基于@ruibarradas注释

最新更新