Cannot access columns of DT within a function called in j

Aperta
#2,276 8 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
30/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
r
Ambito
data

Direzione di ricerca

Start by reproducing the dt[, f("x")] example with the supplied f function, then compare it with the grouped dt[, .(y = f("x")), by = z] case. Determine whether functions called from j can access available columns through dynamic scoping; done means both examples can resolve x as requested.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

programming

Suppose the following function is defined:

f <- function(x) {
  get(x, parent.frame())
}
library(data.table)
dt <- data.table(x = 1:10, y = 10:1, z = rep(1:2, 5))
dt[, f("x")]

Although f does its job to work under dynamic scoping, dt[, f("x")] still results in an error because x is not used directly so that it is not exported to j's environment.

I'm wondering if there's a way to make function like f work so that it can access available variables in j as if those variables were explicitly written, especially for case like dt[, .(y = f("x")), by = z]?

Lingua principale
R
Stelle
3.9k
Fork
1.1k
Merge medio
14h 4m
PR unite (30g)
4

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Rdatatable/data.table

Tutte le issue di Rdatatable/data.table

Issue simili

Altre issue su R

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.