当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。