[英]calculate how many digits that agree after decimal point of two numbers in R
我希望R計算兩個數字之間相同的位數,並返回小數點后相同的位數。 例如:
a <- 0.1234567890
b <- 0.1234567891
輸出:
9
9位數是相同的。
謝謝!
floor(-log10(abs(ab)))
怎么樣?
請注意,任何這樣的計算都存在風險,浮點錯誤可能存在問題 - 請參閱John Paul在下面指出的示例。
這是另一個(基於字符串的)答案,不應該遇到任何浮點比較問題......
sum(sapply(1:20,function(i) grepl(substr(b,1,i),a)))-2
這比較了長度為1到20的b
(強制到字符)的所有初始子串(你可以擴展它),確定它們是否包含在a
,返回匹配的數量(即包含在a
的b
的最長子串的長度) )並減去2以允許初始0.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.