當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R octmode 以八進製顯示的整數


R語言 octmode 位於 base 包(package)。

說明

以八進製(以 8 為基數的數字係統)格式顯示的整數,具有顯示最大數字所需的位數,並根據需要使用前導零。

算術的工作原理與整數相同,非整數值的數學函數通常通過將結果截斷為整數來工作。

用法

as.octmode(x)

## S3 method for class 'octmode'
as.character(x, keepStr = FALSE, ...)

## S3 method for class 'octmode'
format(x, width = NULL, ...)

## S3 method for class 'octmode'
print(x, ...)

參數

x

一個對象,用於從類 "octmode" 繼承的方法。

keepStr

logical 表示應保留名稱和尺寸;如果需要,設置TRUE以實現向後兼容性。

width

NULL 或指定要使用的最小字段寬度的正整數,並用前導零填充。

...

傳入或傳出其他方法的進一步參數。

細節

"octmode" 對象是具有該類屬性的整數向量,主要用於確保它們以八進製表示法打印,特別是針對 Unix-like 文件權限,例如 755 。取子集 ( [ ) 也可以工作,就像算術或其他數學運算一樣,盡管被截斷為整數。

as.character(x) 刪除所有 attributes (除非 keepStr=TRUE 保留 dimdimnamesnames 以實現向後兼容性)並單獨轉換每個條目,因此沒有前導零,而在 format() 中,當width = NULL(默認值)時,輸出將用前導零填充到所有非缺失元素所需的最小寬度。

as.octmode 可以將整數( type "integer""double" )和元素僅包含數字 0-7 (或 NA )的字符向量轉換為類 "octmode"

有一個 ! 方法以及 |& 方法:這些方法將其參數回收到較長的長度,然後按位將運算符應用於每個元素。

例子

(on <- as.octmode(c(16, 32, 127:129))) # "020" "040" "177" "200" "201"
unclass(on[3:4]) # subsetting

## manipulate file modes
fmode <- as.octmode("170")
(fmode | "644") & "755"

umask <- Sys.umask(NA) # depends on platform
c(fmode, "666", "755") & !umask


om <- as.octmode(1:12)
om # print()s via format()
stopifnot(nchar(format(om)) == 2)
om[1:7] # *no* leading zeroes!
stopifnot(format(om[1:7]) == as.character(1:7))
om2 <- as.octmode(c(1:10, 60:70))
om2 # prints via format() -> with 3 octals
stopifnot(nchar(format(om2)) == 3)
as.character(om2) # strings of length 1, 2, 3


## Integer arithmetic (remaining "octmode"):
om^2
om * 64
-om
(fac <- factorial(om)) # !1, !2, !3, !4 .. in hexadecimals
as.integer(fac) # indeed the same as  factorial(1:12)

也可以看看

這些是 file.info 的輔助函數。

hexmodesprintf 用於將整數轉換為八進製的其他選項,strtoi 用於將八進製字符串轉換為整數。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Integer Numbers Displayed in Octal。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。