【问题标题】:Get multiple Sums for a vector with only 2 factor levels为只有 2 个因子水平的向量获取多个总和
【发布时间】:2018-08-08 14:56:31
【问题描述】:

我有一个非常大的向量,其形式如下:

T_Nights <- c(0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0[... and so on])

这个向量是两年中每 10 分钟的标志:“1” = 夜晚,“0” = 白天。这意味着长度为 105264!

由于一年中每 24 小时的昼夜时间不同,我需要获得多个“1”的总和,以获取有关我的夜晚有多长的信息。

是否有任何可能的方法来获取我所有“1”值的该向量的总和,但仍与下一组连续的“1”值分开。 这样我就可以获得一年中每个晚上的值,告诉我它有多长(如果乘以 10)。

【问题讨论】:

    标签: r vector


    【解决方案1】:

    对于您的问题,您可以使用 rle 函数来计算向量中相等值的运行的长度和值。

    ## Example data
    T_Nights = c(0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1)
    
    r = rle(T_Nights)
    Run Length Encoding
      lengths: int [1:6] 11 12 9 5 4 1
      values : num [1:6] 0 1 0 1 0 1
    
    r$lengths[r$values==1]
    [1] 12  5  1
    

    【讨论】:

      猜你喜欢
      • 2015-10-04
      • 1970-01-01
      • 1970-01-01
      • 2018-02-17
      • 2020-05-03
      • 1970-01-01
      • 2019-01-16
      • 1970-01-01
      • 2015-04-04
      相关资源
      最近更新 更多