【问题标题】:Calculating a vector of 0's and 1's with lengths based on observations in another vector根据另一个向量中的观察结果计算长度为 0 和 1 的向量
【发布时间】:2020-04-20 15:16:43
【问题描述】:

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

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

我想使用 Length 中的观察结果来生成一个由 0 和 1 组成的向量。这个新向量将有多个 0 等于 Length 中的第一个值,然后有多个 1 等于 Length 中的第二个值,然后有多个 0 等于 Length 中的第三个值,依此类推,以此类推。或者也许使用 Length 中的观察结果来创建 0 和 1 的向量列表,然后将这些向量绑定到一个大向量中?不知道如何做到这一点,而且似乎无法在堆栈上找到这样的问题。

【问题讨论】:

    标签: r dataframe vector


    【解决方案1】:

    这个base R one-liner可以输出一个由0和1交替重复Length次的向量。

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

    【讨论】:

      【解决方案2】:

      另一种方法:

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

      【讨论】:

        猜你喜欢
        • 2020-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-22
        • 1970-01-01
        • 2016-08-18
        相关资源
        最近更新 更多