R: Display Numbers in Octal

octmode {base} | R Documentation

## Display Numbers in Octal

### Description

Convert or print integers in octal format, with as many digits as are needed to display the largest, using leading zeroes as necessary.

### Usage

    as.octmode(x)

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

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

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

### Arguments

`x` | An object, for the methods inheriting from class `"octmode"`.
`width` | `NULL` or a positive integer specifying the minimum field width to be used, with padding by leading zeroes.
`...` | further arguments passed to or from other methods.

### Details

Class `"octmode"` consists of integer vectors with that class attribute, used merely to ensure that they are printed in octal notation, specifically for Unix-like file permissions such as `755`. Subsetting (`[`) works too.

If `width = NULL` (the default), the output is padded with leading zeroes to the smallest width needed for all the non-missing elements.

`as.octmode` can convert integers (of type `"integer"` or `"double"`) and character vectors whose elements contain only digits `0-7` (or are `NA`) to class `"octmode"`.

There is a `!` method and methods for `|` and `&`: these recycle their arguments to the length of the longer and then apply the operators bitwise to each element.

### See Also

These are auxiliary functions for `file.info`.

`hexmode`, `sprintf` for other options in converting integers to octal, `strtoi` to convert octal strings to integers.

### Examples

    (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

[Package base version 4.0.5 Index]