【发布时间】:2015-09-11 19:17:42
【问题描述】:
我试图对 Force Platform 数据运行一些 entropy() 计算,但收到一条警告消息:
> library(entropy)
> d2 <- read.csv("c:/users/SLA9DI/Documents/data2.csv")
> entropy(d2$CoPy, method="MM")
[1] 10.98084
> entropy(d2$CoPx, method="MM")
[1] 391.2395
Warning message:
In log(freqs) : NaNs produced
我确定这是因为entropy() 正在尝试记录负数。我也知道 R 可以使用 complex() 来处理复数,但是我没有成功让它与我的数据一起使用。我的 CoPy 数据没有出现这个错误,只有 CoPx 数据,因为力平台获取二维的压力中心数据。有没有人对让complex() 处理我的数据集有任何建议,或者是否有其他函数可以更好地尝试获得正确的熵计算?与 CoPy 相比,CoPx 中的熵不应该大得多。我还尝试了来自其他受试者的更多数据集,并且出现了同样的情况,CoPx 熵测量给了我警告信息,而 CoPy 测量没有。我附上了一个数据集链接,这样任何人都可以自己尝试一下,看看他们是否能弄清楚,因为数据有点长,无法发布到这里。
编辑:正确答案
按照建议,我尝试了 table(...) 函数并没有收到任何警告/错误消息,并且熵输出也在预期范围内。但是,我显然忽略了包 discretize() 中的一个函数,这就是你应该用来正确设置熵计算数据的函数。
【问题讨论】:
-
你说的是哪个熵函数?请将此编辑为minimal reproducible example,以便其他人可以提供帮助
-
@Stedy 已编辑以包含我正在使用的熵库。
标签: r complex-numbers entropy