我想在R中編寫函數,其目的是讀取多個.csv文件。它們被命名爲001.csv,002.csv,... 332.csv。sprintf(「%03d」,7)功能的解釋?
隨着paste
我設法建立名稱1.csv,2.csv等,但我很難添加前導零。有跡象表明像sprintf("%03d", 7)
這樣的建築是必需的,但我不知道爲什麼以及如何運作。
那麼有人可以解釋下面的聲明實際上可以做什麼嗎?
我想在R中編寫函數,其目的是讀取多個.csv文件。它們被命名爲001.csv,002.csv,... 332.csv。sprintf(「%03d」,7)功能的解釋?
隨着paste
我設法建立名稱1.csv,2.csv等,但我很難添加前導零。有跡象表明像sprintf("%03d", 7)
這樣的建築是必需的,但我不知道爲什麼以及如何運作。
那麼有人可以解釋下面的聲明實際上可以做什麼嗎?
sprintf
最初來自C,並且所有的格式化規則也都從中獲取。請參閱R中的?sprintf
或this或this參考,以詳細瞭解該主題。在這裏我將簡要概述它背後的魔力。
"%03d"
是格式化字符串,它指定如何打印7
。
d
代表decimal integer
(不double
!),所以說,就沒有浮點或類似的東西,只是一個普通的整數。3
顯示打印號碼有多少位數。更確切地說,這個數字至少需要 3個數字:7
將是__7
(使用空格而不是下劃線),但1000
將保持1000
,因爲沒有辦法只用3位數字來編寫這個數字。0
之前3
顯示前導空格應該被替換爲零。嘗試嘗試sprintf("%+3d", 7)
,sprintf("%-3d", 7)
以查看其他可能的修飾符(它們被稱爲標記)。
您是否閱讀過「?sprintf」幫助頁面?有沒有一個特定的部分對你不清楚? – MrFlick