R填充矢量

gan*_*ddy 6 operations r vector

我有一个零向量,比如长度为10.所以

v = rep(0,10)
Run Code Online (Sandbox Code Playgroud)

我想根据v1中的一组索引和另一个实际上具有序列值的向量v2来填充向量的某些值.所以另一个向量v1有索引说

v1 = c(1,2,3,7,8,9)
Run Code Online (Sandbox Code Playgroud)

和

v2 = c(0.1,0.3,0.4,0.5,0.1,0.9)
Run Code Online (Sandbox Code Playgroud)

最后我想要

v = c(0.1,0.3,0.4,0,0,0,0.5,0.1,0.9,0)
Run Code Online (Sandbox Code Playgroud)

所以v1中的索引是从v2映射的,其余的都是0.我显然可以编写一个for循环,但由于实际矩阵的长度,这在R中占用太长时间.有什么简单的方法吗?

Dav*_*son 8

您可以这样分配:

v[v1] = v2
Run Code Online (Sandbox Code Playgroud)

例如:

> v = rep(0,10)
> v1 = c(1,2,3,7,8,9)
> v2 = c(0.1,0.3,0.4,0.5,0.1,0.9)
> v[v1] = v2
> v
 [1] 0.1 0.3 0.4 0.0 0.0 0.0 0.5 0.1 0.9 0.0
Run Code Online (Sandbox Code Playgroud)

  • @Jilber - 尽管如此......即使你提出的问题,你仍然需要15个代表才能进行投票[(链接)](http://stackoverflow.com/privileges/vote-up) (2认同)