question | warnings with joins

Aperta
#4,601 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
25/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
r
Ambito
data

Direzione di ricerca

Start by running the two R/data.table examples in the issue and then construct a reproducible case for each warning. The report names no files or tests; done would require identifying the join or ifelse conditions that trigger the warnings and documenting the correct handling or expected behavior.

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

Descrizione

joins

Hi,
may I please ask you

1
I used to experience warnings like:
Coerced 'integer' RHS to 'logical' to match the column's type. Either change the target column to 'integer' first (by creating a new 'integer' vector length 4277 (nrows of entire table) and assign that; i.e. 'replace' column), or coerce RHS to 'logical' (e.g. 1L, NA_[real|integer]_, as.*, etc) to make your intent clear and for speed. Or, set the column type correctly up front when you create the table and stick to it, please.

in the joins like:

a = data.table(id1 = c(1,2,3), id2 = c(1,2,3), field = c(1,2,3))
b = data.table(id1 = c(1,2,3), id2 = c(11,22,33), field = c(1,2,3))
a[b, field := i.field, on=.(id1 = id2)]

There is no ifelse condition
In this small sample there is no such a warning

I cannot always reproduce but maybe you can advice - what is the best way to prevent this?
I did the check that nrow(b) > 0 but it doesnt help a lot

2
and the second question with ifelse
similar problem in terms of reproducing
but the idea is:

a = data.table(id1 = c(1,2,3), id2 = c(1,2,3), field = c(1,2,3))
b = data.table(id1 = c(1,2,3), id2 = c(11,22,33), field = c(1,2,3))
a[b, field := ifelse(id2 > i.id2, i.field, field), on=.(id1)]

as I understand sometimes there is NA condition inside of ifelse and there is warning as well - is there a way to handle it somehow properly? I am not sure its the best idea to write the long prejoin conditions like if (nrow(a[b, on=.(id1=id2)) > 0) or smth

Thank you

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.