Let DT[-integer(0)] return the full table
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
Start at the [.data.table entry point referenced by the warning and reproduce the supplied DT[-w] examples with w = integer(0) and an out-of-range negative index. Done means DT[-integer(0)] returns the full table while the existing warning and other negative-indexing behavior remain appropriate.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
One annoying quirk of base R is the fact that x[-w] excludes the positions in w iff length(w) > 0. This happens because -w is computed before being passed to [. Since data.table evaluates the whole DT[...] call together, it can break consistency here, and I think should do so.
library(data.table)
DT = data.table(id = 1:2)
w = integer(0)
# current behavior
DT[-w]
# Empty data.table (0 rows) of 1 col: id
# desired behavior
DT[-w]
# id
# 1: 1
# 2: 2
The workaround mentioned in the link above is to set w = nrow(DT) + 1L. This works with vectors, x = 1:2; x[-3L], but data.table gives a helpful warning for this hack.
w2 = 3L
DT[-w2]
# id
# 1: 1
# 2: 2
# Warning message:
# In `[.data.table`(DT, -w2) :
# Item 1 of i is -3 but there are only 2 rows. Ignoring this and 0 more like it out of 1.
I doubt this would break backward compatibility in a way that matters for folks; and I guess it can be done without much of any efficiency tradeoff (?).
Example of the negative consequences of current behavior from SO: http://stackoverflow.com/a/43682893/
- Ngôn ngữ chính
- R
- Star
- 3.9k
- Fork
- 1.1k
- Merge trung bình
- 14 giờ 4 phút
- Pull request đã merge (30 ngày)
- 4
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của Rdatatable/data.table
-
as.data.table() recurses without end on a survival::Surv object (or any data.frame carrying one) Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
Rdatatable/data.table#7887 ·
-
consistency tests
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Rdatatable/data.table#7853 · 3 bình luận ·
-
internals
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Rdatatable/data.table#6938 · 1 bình luận ·
-
encoding fread
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Rdatatable/data.table#5179 · 8 bình luận ·
-
documentation programming
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Rdatatable/data.table#3199 · 3 bình luận ·
Tất cả issue của Rdatatable/data.table
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
r-lib/pkgdepends#485 · 3 bình luận ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
-
beginners blocker
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
enviPathR Đang mởBuild Error Build OK Build Warning policies-accepted pre-review precheck-passed
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 84/100
Bioconductor/BiocContributions#207 · 6 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
datacarpentry/semester-biology#1255 ·