如何在R中创建这种数组?
iii <- seq(from = 1, to = 49, by = 2)
这只会创造价值:
1 3 5 .. 49
我需要创建的数组:
1, 0, 3, 0, 5, 0, 7, . . . , 0, 49
答案 0 :(得分:1)
使用:
x <- 1:11
x * (x %% 2)
给出:
[1] 1 0 3 0 5 0 7 0 9 0 11
这是做什么的:
x %% 2
为x
的不均匀值创建一个向量,为x
的偶数值创建零。x
与x %% 2
相乘可以得到一个值不均匀的向量,其间为零。根据@lmo的建议,你也可以这样做:
x <- seq(1, 11, 2)
head(rep(x, each = 2) * (1:0), -1)
会产生相同的结果。