如何汇总数据集并计算R中各组之间连续变量的熵?

问题描述 投票:0回答:1

我想计算R中每个组的连续变量的熵。

这里是数据示例:

id group X 1 1 1 28 2 2 1 45 3 3 2 21 4 4 2 46 5 5 3 82 6 6 3 98

实际上有273个组,并且X以外的变量更多。

我希望能够为每个“组”计算X的熵。

我已经尝试过使用group_by并在tidyr中汇总命令,但是我不相信有适当的熵命令。

希望对此有一个简单的解决方案。

提前感谢。

r aggregate tidyr entropy
1个回答
0
投票

R中有一个entropy软件包。

install.packages('entropy')
library(entropy)

df %>% 
  group_by(group) %>% 
  mutate(entropy = entropy(X))

给我们:

     id group     X entropy
  <dbl> <dbl> <dbl>   <dbl>
1     1     1    28   0.666
2     2     1    45   0.666
3     3     2    21   0.622
4     4     2    46   0.622
5     5     3    82   0.689
6     6     3    98   0.689

数据:

df <- structure(list(id = c(1, 2, 3, 4, 5, 6), group = c(1, 1, 2, 2, 
3, 3), X = c(28, 45, 21, 46, 82, 98)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame"))
© www.soinside.com 2019 - 2024. All rights reserved.