将 log 取到大于 0 的数字时产生的 NaN

埃米尔·克拉布

我想将日志变量设置为总资产的变量。我喜欢这样:

`HRSdata2$h1logass <- (ifelse(HRSdata2$h1atotb > 0, log(HRSdata2$h1atotb), 0))`

我收到错误消息: In log(HRSdata2$h1atotb) : NaNs produced

我的数据集显示,在采用我预测的 log(NA) 时,我得到了 NA,但是,为什么我得到 NaN?他们更关心我。

也有人可以告诉我运行循环的代码或其他智能方式将日志应用于一堆列吗?目前这是我的(我知道很穷)代码:

HRSdata2$h1logass <- (ifelse(HRSdata2$h1atotb > 0, log(HRSdata2$h1atotb), 0))
HRSdata2$h2logass <- (ifelse(HRSdata2$h2atotb > 0, log(HRSdata2$h2atotb), 0))
HRSdata2$h3logass <- (ifelse(HRSdata2$h3atotb > 0, log(HRSdata2$h3atotb), 0))
HRSdata2$h4logass <- (ifelse(HRSdata2$h4atotb > 0, log(HRSdata2$h4atotb), 0))
HRSdata2$h5logass <- (ifelse(HRSdata2$h5atotb > 0, log(HRSdata2$h5atotb), 0))
HRSdata2$h6logass <- (ifelse(HRSdata2$h6atotb > 0, log(HRSdata2$h6atotb), 0))
HRSdata2$h7logass <- (ifelse(HRSdata2$h7atotb > 0, log(HRSdata2$h7atotb), 0))
HRSdata2$h8logass <- (ifelse(HRSdata2$h8atotb > 0, log(HRSdata2$h8atotb), 0))
HRSdata2$h9logass <- (ifelse(HRSdata2$h9atotb > 0, log(HRSdata2$h9atotb), 0))
HRSdata2$h10logass <- (ifelse(HRSdata2$h10atotb > 0, log(HRSdata2$h10atotb), 0))

我基本上只需要学习如何循环变量名谢谢。

斯蒂芬·洛朗

当你这样做时ifelse(x > 0, log(x), 0),R 计算log(x)

> x <- c(2, -1, 3)
> ifelse(x > 0, log(x), 0)
[1] 0.6931472 0.0000000 1.0986123
Warning message:
In log(x) : NaNs produced

但是在结果中你没有得到NaN,你得到0的是对应于 的值x <= 0

这个ifelse语句相当于

ifelse(c(TRUE, FALSE, TRUE), c(log(2), log(-1), log(3)), c(0,0,0))

R 不会删除第一个参数的值为 的第二个参数的值的计算FALSE

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将参数“ 0”传递给函数时接收NaN

当大于x时,将数据框中的值替换为nan吗?

.agg总和将NaN转换为0

用0除以0时的NAN

如何在乘熊猫数据框时将NaN或不对齐的值视为1或0

当列名在特定日期范围内时,pandas 数据框将 NaN 替换为 0

数据帧的总和:将 NaN 与其他值相加时视为 0,但返回所有求和元素均为 NaN 的 NaN

正则表达式将特定模式与数字匹配。允许的数字 0 和大于 5

将NaN或Inf乘以0并得到0

每当我传递任何将String值保存到console.log()的变量时,节点用NaN答复?

对于每一行,将数字大于 0 的单元格放入列列表中

将文本“ 0”转换为数字0时出错

输入大于127的数字时,将打印出垃圾

根据NaN将列值替换为0或1

添加将 SymPy nan 条目视为 0 的 numpy 矩阵

使用JsSimpleDateFormat转换印度格式时,如何解决“ NaN-NaN-0NaN”错误?

分组并找到组的总和,但将NaN返回为NaN,而不是0

Matlab:0 <NaN = 0

输入数字字段大于 0?

Prolog - 找到任何大于 0 的数字

jS:单击功能时,将数字添加到变量-给出NaN

Pandas:将类别转换为数字时如何处理 nan 值

当将大量数字存储在JavaScript中的多维数组中时,会将其转换为NaN

浮点数不大于、小于或等于 0.,但也不是 NaN 也不是 Infinity

仅在某些字段大于0时加入

当键值大于 0 时创建字典列表

行数大于0时使用PHP sql

Swift Struct 无法将数组元素设置为大于 0

Python:将多列与一列进行比较,并用 NaN 替换大于该列的值