gpt4 book ai didi

R - 从直方图数据中检索分布

转载 作者:行者123 更新时间:2023-12-04 11:03:34 26 4
gpt4 key购买 nike

我有这样的数据框:

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)

谢谢

最佳答案

您可以组合功能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

关于R - 从直方图数据中检索分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18077365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com