Skip to content

Commit a3e5465

Browse files
committed
feat(7614): use call to capture args and redirect to dcast.data.table and melt.data.table
1 parent a05b069 commit a3e5465

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

R/fcast.R

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,14 @@ dcast = function(
1212
data, formula, fun.aggregate = NULL, ..., margins = NULL,
1313
subset = NULL, fill = NULL, value.var = guess(data)
1414
) {
15-
if (!is.data.table(data) && is.data.frame(data))
16-
return(
17-
dcast.data.table(data, formula, fun.aggregate = fun.aggregate, ...,
18-
margins = margins, subset = subset, fill = fill,
19-
value.var = value.var)
20-
)
21-
UseMethod("dcast", data)
15+
if (!is.data.table(data) && is.data.frame(data)){
16+
mc <- match.call()
17+
mc[[1L]] <- as.name("dcast.data.table")
18+
eval(mc, parent.frame())
19+
}
20+
else {
21+
UseMethod("dcast", data)
22+
}
2223
}
2324

2425
check_formula = function(formula, varnames, valnames, value.var.in.LHSdots, value.var.in.RHSdots) {

R/fmelt.R

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,14 @@
44
# redirection as well
55

66
melt = function(data, ..., na.rm = FALSE, value.name = "value") {
7-
if (!is.data.table(data) && is.data.frame(data))
8-
return(melt.data.table(data, ..., na.rm = na.rm, value.name = value.name))
9-
UseMethod("melt", data)
7+
if (!is.data.table(data) && is.data.frame(data)){
8+
mc <- match.call()
9+
mc[[1L]] <- as.name("melt.data.table")
10+
eval(mc, parent.frame())
11+
}
12+
else {
13+
UseMethod("melt", data)
14+
}
1015
}
1116

1217
patterns = function(..., cols=character(0L), ignore.case=FALSE, perl=FALSE, fixed=FALSE, useBytes=FALSE) {

0 commit comments

Comments
 (0)