の評価がdata.table
で失われています。 LJ
とLJ2
の機能を1つの関数にマージする正しい方法は何ですか?by data.tableの非標準的な評価
LJ <- function(dt_x_, dt_y_, by_)
{
merge(
dt_x_,
dt_y_,
by = eval(substitute(by_)), all.x = TRUE, sort = FALSE)
}
LJ2 <- function(dt_x_, dt_y_, by_)
{
merge(
dt_x_,
dt_y_,
by = deparse(substitute(by_)), all.x = TRUE, sort = FALSE)
}
LJ(
data.table(A = c(1,2,3)),
data.table(A = c(1,2,3), B = c(11,12,13)),
"A")
LJ2(
data.table(A = c(1,2,3)),
data.table(A = c(1,2,3), B = c(11,12,13)),
A)
私は両方の機能を持つ同じ出力を得ます。 – akrun
これはdata.tableに関連していないので、 'merge.data.frame'は同じように動作します – jangorecki