创建向量 = (0 1 1 0 0 0 1 1 1 1)?

问题描述 投票:0回答:3

如何创建以下向量?

vec = (0 1 1 0 0 0 1 1 1 1)

我已经尝试过

rep(0:1,times=1:4)
可以处理 0 以外的数字,但这里不行...=

r vector zero rep
3个回答
4
投票

对于rep,'times'和'x'需要具有相同的长度(除非'times'的长度等于1)。因此,在这种情况下,您需要创建一个长度为 4 的向量“x”。

> rep(rep(0:1,2),times=1:4)
 [1] 0 1 1 0 0 0 1 1 1 1

4
投票

这是一个通用解决方案:

> increp=function(n){rep(0:(n-1), times=1:n) %% 2}
> increp(4)
 [1] 0 1 1 0 0 0 1 1 1 1
> increp(3)
[1] 0 1 1 0 0 0
> increp(2)
[1] 0 1 1
> increp(6)
 [1] 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1

它生成

0,1,1,2,2,2,3,3,3
达到所需的长度,然后根据偶数或奇数转换为0/1。


-1
投票

有人可以帮我做这个练习吗

9 根据需要使用rep()和seq(),创建向量 1234523456345674567856789

10 创建向量

[1] 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1

[34] 1 1

© www.soinside.com 2019 - 2024. All rights reserved.