我正在尝试用以下方法对数据进行日志转换。。。
skew(data_1)
any(data_1 == 0)
data_1_no_zero <- data_1 != 0
transform <- log(data_1_no_zero)
skew(transform)
[1] NaN
但我得到了NaN的以下输出,我知道它不是一个数字。有人能帮忙弄清楚这是怎么回事吗?或者还能做些什么来获得更好的输出?
您最近的问题是您应该编写
data_1_no_zero <- data_1[data_1 != 0]
也就是说,选择data_1
的非零元素。na.omit(log(data_1))
也会起作用,尽管可以说先去除零更好(更上游(。
至于你应该做的更广泛的事情——使用不同的变换,去掉零,加1/使用log1p()
,加一个小常数(例如data_1 <- data_1 + min(data_1[data_1>0])/2
(。。。这在很大程度上取决于你的背景/你想做什么。