r - R中的乘法常数

标签 r

我有5个小数点的数字向量,我累了乘以7,结果给我整数,我不知道为什么小数消失了。你可知道发生了什么?

这是数据

> df
    ID     Begin       End       Int
1   34 30-Dec-05 15-Jan-06  6.142857
2   66  3-Apr-06  7-Aug-06 13.000000
3   66 28-Feb-06  3-Apr-06 17.857143
4  104 31-Jan-06 28-Feb-06  6.000000
5  104 28-Feb-06 23-May-06 10.000000
6  104 24-May-06  7-Sep-06 22.142857
7  182  9-May-06 10-Jul-06 -1.571429
8  189 10-Apr-06 11-Apr-06 15.285714
9  189 12-Apr-06 12-Apr-06 15.571429
10 189 13-Apr-06 15-Apr-06 15.714286
11 189 13-Aug-06 13-Sep-06 23.428571
12 189  6-Jun-06  6-Jun-06 33.142857
13 193 17-Mar-06 24-Mar-06  2.428571
14 193 27-Jun-06 28-Jun-06 17.000000
15 193  7-Jul-06 25-Sep-06 18.428571
16 237 10-Feb-06 15-Mar-06 -2.000000
17 237 15-Mar-06 10-Apr-06  2.714286
18 264 25-Jan-06  7-Nov-06 -2.285714
19 282 19-Nov-05  1-Aug-06  6.000000

df$cal <- df$Int*7

它给了我
 [1]  43  91 125  42  70 155 -11 107 109 110
[11] 164 232  17 119 129 -14  19 -16  42

最佳答案

R根据数字的小数部分调整打印格式;它不一定打印小数点后的所有零。

> (x = 18/7)
[1] 2.571429
> x*7
[1] 18
> sprintf("%1.10f",x*7)
[1] "18.0000000000"

根据您的示例,这正是这里发生的情况:您的 Int值都是 1/7 的精确倍数(大概源自从天到周的某种转换),因此乘以 7 会得到浮点结果,其中带有 .00000... 的精确或几乎精确的小数部分。

关于r - R中的乘法常数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38984178/

相关文章:

r - 在轴中间以外的不同位置绘制轴名称

r - 在 Shiny 应用页面的标题栏中显示图标

r - 尝试开始使用doParallel和foreach,但没有任何改善

r - 如何在data.table中动态使用lapply?

r - rbind.fill.matrix 到底做了什么?

r - R 可以就地执行 cumsum 之类的操作吗?

r - 在 R 中手动模拟泊松过程

r - 取消列出数据框列表

r - R中使用tcltk的多个组合框

r - 将两个数据子组合并到同一数据框中