根据另一个向量中的观察值,计算长度为0和1的向量

时间:2020-04-20 15:16:43

标签: r dataframe vector

假设我们有一个这样的数据框:

Length <- floor(runif(25, min = 25, max = 1000))
ObservationID <- c(rep("20200321WT3", 25))
DF <- cbind(ObservationID, Length)
DF <- as.data.frame(DF)

我想使用“长度”中的观察值生成一个包含0和1的向量。这个新向量的数字0等于Length的第一个值,然后数字1等于Length的第二个值,然后0等于Length的第三个值,依此类推,交替进行。还是可以使用“长度”中的观察值创建一个0和1的向量列表,然后将这些向量绑定在一起成为一个大向量?不确定如何执行此操作,并且似乎无法在堆栈上找到类似的问题。

2 个答案:

答案 0 :(得分:1)

此基数为R的内衬可以输出一个零和交替重复Length次的向量。

unlist(lapply(seq_along(Length), function(i) rep((i - 1)%% 2, each = Length[i])))

答案 1 :(得分:0)

另一种方法:

rep(x = rep_len(x = 0:1,
                length.out = length(x = Length)),
    times = Length)