用条件创建矢量

时间:2017-10-08 07:30:24

标签: arrays r vector

如何在R中创建这种数组?

iii <- seq(from = 1, to = 49, by = 2)

这只会创造价值:

1  3  5 .. 49

我需要创建的数组:

1, 0, 3, 0, 5, 0, 7, . . . , 0, 49

1 个答案:

答案 0 :(得分:1)

使用:

x <- 1:11
x * (x %% 2)

给出:

[1]  1  0  3  0  5  0  7  0  9  0 11

这是做什么的:

  • x %% 2x的不均匀值创建一个向量,为x的偶数值创建零。
  • xx %% 2相乘可以得到一个值不均匀的向量,其间为零。

根据@lmo的建议,你也可以这样做:

x <- seq(1, 11, 2)
head(rep(x, each = 2) * (1:0), -1)

会产生相同的结果。