向下舍入到最近的10

时间:2019-01-09 18:52:30

标签: r rounding floor

因此,我有一列值的范围从10到100,我希望所有值都四舍五入到最接近的10。技巧是,我希望它总是四舍五入。例如,55将变为50而不是60。我想象为此将实现floor,但是当我尝试floor时,它仅返回不变的相同值。

x
10
15
20
27
30
34

等...

我想要什么:

x
10
10
20
20
30
30

我尝试过的事情:

data$x <- floor(data$x)

这只给了我完全相同的值。

3 个答案:

答案 0 :(得分:3)

由于floor(x)得到的最小整数y不大于x,因此您可以将x中的所有值除以10,得到下限,然后乘以十;也就是说,您可以使用floor(x/10) * 10

x <- c(10,
       15,
       20,
       27,
       30,
       34)
floor(x/10) * 10
# [1] 10 10 20 20 30 30

答案 1 :(得分:2)

您不需要在这里发言,请%/%

v%/%10*10
[1] 10 10 20 20 30 30

答案 2 :(得分:2)

我在这方面迟到了,但是我确实有一个类似的解决方案,它似乎运行得很快。它与其他选项相似,但是使用// // SearchBar.swift // Yomu // // Created by Sendy Halim on 9/3/17. // Copyright © 2017 Sendy Halim. All rights reserved. // import Foundation import UIKit class SearchBar: UISearchBar { override func willMove(toSuperview newSuperview: UIView?) { super.willMove(toSuperview: newSuperview) searchBarStyle = .minimal // Create search icon let searchIcon = UIImageView(image: #imageLiteral(resourceName: "search")) let searchImageSize = searchIcon.image!.size searchIcon.frame = CGRect(x: 0, y: 0, width: searchImageSize.width + 10, height: searchImageSize.height) searchIcon.contentMode = UIViewContentMode.center // Configure text field let textField = value(forKey: "_searchField") as! UITextField textField.leftView = searchIcon textField.borderStyle = .none textField.backgroundColor = UIColor(hex: "#F7F7F7") textField.clipsToBounds = true textField.layer.cornerRadius = 6.0 textField.layer.borderWidth = 1.0 textField.layer.borderColor = textField.backgroundColor!.cgColor textField.textColor = UIColor(hex: "#555555") } } 函数。

trunc

reprex package(v0.2.1)于2019-01-09创建

我增加了x<- c(10, 15, 20, 27, 30, 34) trunc(x / 10) * 10 #> [1] 10 10 20 20 30 30 identical(x %/% 10 * 10, floor(x/10) * 10) #> [1] TRUE identical(trunc(x / 10) * 10, floor(x/10) * 10) #> [1] TRUE 向量的大小,并用x运行所有三个向量。 microbenchmark方法在此数据上最快。

trunc

reprex package(v0.2.1)于2019-01-09创建