我想计算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中有一个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"))