0
我做了這個功能,將所有9個或更少轉換爲一個詞,也將通過插入一個逗號格式化大量的字符和格式:將數字轉換到
library(english); library(stringr)
reportNumber <- function (number) {
ifelse(number > 9, str_trim(format(number, big.mark= ",", scientific = F)), as.character(english(number)))
}
功能的工作原理是這樣的:
reportNumber(c(0, 9, 10, 100, 1000, 10000))
# [1] "zero" "nine" "10" "100" "1,000" "10,000"
但如果數有一個小數點,函數錯誤:
reportNumber(c(0.1, 9.1, 10.1, 100.1, 1000.1, 10000.1))
我需要個e函數測試一個數字是否有小數點,如果是true,則只打印未格式化的數字。所以輸出應該簡單地:
c(0.1, 9.1, 10.1, 100.1, 1000.1, 10000.1)
# [1] 0.1 9.1 10.1 100.1 1000.1 10000.1
'grepl(「。」,number),...)'可能適用於該問題。或者可能'is.double' –
沒有工作對不起 – luciano
理查德的基本想法很好,但'.'是正則表達式中的一個特殊字符。您可能需要在'grepl'中指定'fixed = TRUE'。 – joran