目录 描述解决问题总结
描述解决问题
R语言中数据类型有多种:整数型、逻辑型、浮点型、复数型等等,我们往往要对数据类型做如:判断缺失、判断整数、判断类型等逻辑判断操作。但是再浮点型的数据进行判断时,我们通常会犯错。比如sqrt(0.2)^2是否等于0.2,从逻辑上来说是的。但是我们可以通过R语言的命令来探索一下这个事情。
> # identical:判断元素是否相等> identical(0.2, 0.2)[1] TRUE> identical(sqrt(0.2)^2, 0.2)[1] FALSE> 0.2 == 0.2[1] TRUE> sqrt(0.2)^2 == 0.2[1] FALSE我们可以看到实际上在R语言中这两个值实际是不等于的。这样如果我们不注意在进行值筛选的时候就会造成条件索引不全。但是我们的逻辑是需要这两个数值逻辑为真。这时候就会用到包dplyr里的near函数。接下来演示一下这个函数的函数体以及功能。
> dplyr::nearfunction (x, y, tol = .Machine$double.eps^0.5) { abs(x - y) < tol}<bytecode: 0x00000000052d8e88><environment: namespace:dplyr>功能:dplyr::near(a, b判断值b值是否在a值附近。
> dplyr::near(sqrt(0.2)^2, 0.2)[1] TRUE 总结最后希望可以帮助大家学习R语言。水平有限发现错误还望及时评论区指正,您的意见和批评是我不断前进的动力。