相关疑难解决方法(0)

为什么这些数字不相等?

以下代码显然是错误的.有什么问题?

i <- 0.1
i <- i + 0.05
i
## [1] 0.15
if(i==0.15) cat("i equals 0.15") else cat("i does not equal 0.15")
## i does not equal 0.15
Run Code Online (Sandbox Code Playgroud)

floating-point r floating-accuracy r-faq

263
推荐指数
4
解决办法
4万
查看次数

如何计算R中的风向平均值?

我有一个由风向矢量组成的数据集,如下所示:

wdir <- c(296.9, 215.2, 204.8, 110.8, 287.6, 203.4, 253.1, 46.0, 298.8,  62.8, 183.4, 62.3,
          44.3, 97.6, 78.6, 125.6, 116.9, 121.0, 111.2, 335.8, 287.4, 51.7, 232.6, 265.5,
          269.7, 20.5, 17.0, 310.8)
Run Code Online (Sandbox Code Playgroud)

标量值以度为单位.

如何计算平均风向?

r

4
推荐指数
1
解决办法
2425
查看次数

舍入到倍数并过滤data.table

我有一个非常有趣的问题,但我宁愿没有.我必须将一个数字舍入到一个结束的数字,所以我按照这里的解决方案 它曾经工作正常,直到我发现data.table的错误

library(data.table)
options(digits = 20) # to see number representation
mround <- function (number, multiple) {
   return(multiple * round(number / multiple))
}
DT = data.table(a = mround(112.3, 0.1), b = "B")
DT[a == 112.3,] # works as expected, i.e returns one row
DT[a == 112.3 & b == 'B', ] # doesn't work
Run Code Online (Sandbox Code Playgroud)

公平地说,data.frame即使第一个过滤器也不起作用.任何想法如何解决?

r data.table

4
推荐指数
1
解决办法
232
查看次数

标签 统计

r ×3

data.table ×1

floating-accuracy ×1

floating-point ×1

r-faq ×1