Skip to content

Commit ede931e

Browse files
Extract keep.rownames and key from ...
1 parent d73f405 commit ede931e

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

R/as.data.table.R

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,15 +245,21 @@ as.data.table.data.frame = function(x, keep.rownames=FALSE, key=NULL, ...) {
245245
ans
246246
}
247247

248-
as.data.table.data.table = function(x, keep.rownames, key, ...) {
248+
as.data.table.data.table = function(x, ...) {
249+
# Extract keep.rownames and key from ... if provided
250+
dots = list(...)
251+
keep.rownames = if("keep.rownames" %in% names(dots)) dots$keep.rownames else FALSE
252+
key_provided = "key" %in% names(dots)
253+
key = if(key_provided) dots$key else NULL
254+
249255
# as.data.table always returns a copy, automatically takes care of #473
250256
if (any(cols_with_dims(x))) { # for test 2089.2
251257
return(as.data.table.list(x, keep.rownames = if(missing(keep.rownames)) FALSE else keep.rownames, key = if(missing(key)) NULL else key, ...))
252258
}
253259
x = copy(x) # #1681
254260
# fix for #1078 and #1128, see .resetclass() for explanation.
255261
setattr(x, 'class', .resetclass(x, "data.table"))
256-
if (!missing(key)){
262+
if (key_provided){
257263
setkeyv(x, key)
258264
} else {
259265
setattr(x, "sorted", NULL)

man/as.data.table.Rd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Functions to check if an object is \code{data.table}, or coerce it if possible.
2121
\usage{
2222
as.data.table(x, keep.rownames=FALSE, \dots)
2323

24-
\method{as.data.table}{data.table}(x, keep.rownames, key, \dots)
24+
\method{as.data.table}{data.table}(x, \dots)
2525

2626
\method{as.data.table}{array}(x, keep.rownames=FALSE, key=NULL, sorted=TRUE,
2727
value.name="value", na.rm=TRUE, \dots)

0 commit comments

Comments
 (0)