NEWS.md
parse_env_subset()
gained argument is_variable
to control whether or not the inferred element named should be checked if it is a valid variable name.
lengths()
for listenv
is no longer exported.parse_env_subset(x[1, names])
on a listenv x
matrix would throw error Error in if (any(i < 0)) { : missing value where TRUE/FALSE needed
if one of the elements in names
specifies a non-existing column name.
parse_env_subset(x[])
on a listenv x
would throw an error on Invalid subset: x[]
.
parse_env_subset(x[names])
on a listenv x
would throw an error on length(x) = 2 > 1 in coercion to logical(1)
when length(names) > 1
and _R_CHECK_LENGTH_1_LOGIC2_=true
.
parse_env_subset(x[1,idxs])
on a listenv x
would throw an error on length(x) = 2 > 1 in coercion to logical(1)
with length(idxs) > 1
and _R_CHECK_LENGTH_1_LOGIC2_=true
.
parse_env_subset(x[[names]])
on a regular environment x
with length(names) > 1
would not throw an error, whereas x[[names]]
would.
parse_env_subset(x[[1]])
on a regular environment x
would not throw an error, whereas x[[1]]
would.
Now it is possible to set the dimension on an empty list environment without first resizing it with length()
, e.g. x <- listenv(); dim(x) <- c(2, 3)
.
Now it is possible to remove multiple elements by assigning NULL, e.g. x[c(2:3, 10)] <- NULL
and x[, "B"] <- NULL
.
Added lengths()
for list environments. Requires R (>= 3.3.0).
dim_na(x) <- dims
, where dims
contain exactly one missing value, will set the “missing” dimension based on the length of x
and the other dimensions specified, e.g. with length(x) == 6
, dim_na(x) <- c(2, NA)
will set dim(x) <- c(2, 3)
. This works for all types of object to which dimensions can be assigned - not only list environments.
Added is.matrix()
, is.array()
, as.vector()
, and as.matrix()
for list environments.
print()
on a named, empty list environment would output an empty string.
Removing an element from a list environment did not remove dimensions, e.g. x$a <- NULL
.
Add support for assigning elements when creating list environment similarly how to lists work, e.g. x <- listenv(a = 1, b = 2)
.
length(x) <- n
now expand/truncate a list environment.
Added unlist()
and all.equal()
for list environments.
Added as.listenv()
.
CONSISTENCY: Assigning NULL now removes element just as lists, e.g. x$a <- NULL
. To assign value NULL, do x['a'] <- list(NULL)
.
Added support for subsetting with [()
, which returns another list environment, e.g. x[2:3]
, x[-1]
, and x[c(TRUE, FALSE)]
.
Added [<-
assignment, e.g. x['a'] <- 1
and x[2:3] <- c(3,8)
.
CLEANUP: Dropped stray debug code.
parse_env_subset()
.print()
on listenv
handles empty and no-named listenv
:s better.get_variable()
gained argument mustExist
.print()
for listenv
:s.