diff options
Diffstat (limited to 'src/arrow/r/R/dictionary.R')
-rw-r--r-- | src/arrow/r/R/dictionary.R | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/arrow/r/R/dictionary.R b/src/arrow/r/R/dictionary.R new file mode 100644 index 000000000..b701768d6 --- /dev/null +++ b/src/arrow/r/R/dictionary.R @@ -0,0 +1,69 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +#' @include type.R + +#' @title class DictionaryType +#' +#' @usage NULL +#' @format NULL +#' @docType class +#' +#' @section Methods: +#' +#' TODO +#' +#' @rdname DictionaryType +#' @name DictionaryType +DictionaryType <- R6Class("DictionaryType", + inherit = FixedWidthType, + public = list( + ToString = function() { + prettier_dictionary_type(DataType__ToString(self)) + } + ), + active = list( + index_type = function() DictionaryType__index_type(self), + value_type = function() DictionaryType__value_type(self), + name = function() DictionaryType__name(self), + ordered = function() DictionaryType__ordered(self) + ) +) +DictionaryType$create <- function(index_type = int32(), + value_type = utf8(), + ordered = FALSE) { + assert_is(index_type, "DataType") + assert_is(value_type, "DataType") + DictionaryType__initialize(index_type, value_type, ordered) +} + +#' Create a dictionary type +#' +#' @param index_type A DataType for the indices (default [int32()]) +#' @param value_type A DataType for the values (default [utf8()]) +#' @param ordered Is this an ordered dictionary (default `FALSE`)? +#' +#' @return A [DictionaryType] +#' @seealso [Other Arrow data types][data-type] +#' @export +dictionary <- DictionaryType$create + +prettier_dictionary_type <- function(x) { + # Prettier format the "ordered" attribute + x <- sub(", ordered=0", "", x) + sub("ordered=1", "ordered", x) +} |