【问题标题】:R - Retrieve distribution from histogram dataR - 从直方图数据中检索分布
【发布时间】:2013-08-07 07:02:49
【问题描述】:

我有这种数据框:

df<-data.frame(Value=c(0,1,2), A=c(3,2,0), B=c(1,4,2))

考虑到每列中的数字对应于每个“值”(来自直方图的数据)的出现次数,我想获得每个组(A,B)的值分布的向量。所以如果我在 A 列中有 5 个值 1,我想在向量结果中有五个 1 (1,1,1,1,1)。在示例中,结果将是::

  A<-c(0,0,0,1,1)
  B<-c(0,1,1,1,1,2,2)

谢谢

【问题讨论】:

    标签: r dataframe histogram


    【解决方案1】:

    您可以组合函数apply()rep()。在 rep() 中,您使用 A 和 B 列设置 time= 以重复 Value

    apply(df[,-1],2,function(x) rep(df$Value,times=x))
    $A
    [1] 0 0 0 1 1
    
    $B
    [1] 0 1 1 1 1 2 2
    

    更新

    正如@Arun 函数所指出的,apply() 将在应用函数之前将数据帧强制转换为矩阵,这不是必需的。在这种情况下,使用函数lapply() 可以获得相同的结果,因为我们将函数应用于列。

    lapply(df[,-1],function(x) rep(df$Value,times=x))
    $A
    [1] 0 0 0 1 1
    
    $B
    [1] 0 1 1 1 1 2 2
    

    【讨论】:

      猜你喜欢
      • 2019-06-02
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-27
      相关资源
      最近更新 更多