You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Description: Fast aggregation of large data (e.g. 100GB in RAM), fast ordered joins, fast add/modify/delete of columns by group using no copies at all, list columns, friendly and fast character-separated-value read/write. Offers a natural and flexible syntax, for faster development.
Copy file name to clipboardExpand all lines: NEWS.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,6 +30,8 @@
30
30
31
31
2.`set()` now automatically pre-allocates new column slots if needed, similar to what `:=` already does, [#1831](https://github.com/Rdatatable/data.table/issues/1831)[#4100](https://github.com/Rdatatable/data.table/issues/4100). Thanks to @zachokeeffe and @tyner for the report and @ben-schwen for the fix.
32
32
33
+
3.`fread("file://...")` works for file URIs with spaces, [#7550](https://github.com/Rdatatable/data.table/issues/7550). Thanks @aitap for the report and @MichaelChirico for the PR.
34
+
33
35
## data.table [v1.18.0](https://github.com/Rdatatable/data.table/milestone/37?closed=1) 23 December 2025
# input is data itself containing at least one \n or \r
64
64
} elseif (startsWith(input, "")) {
65
65
stopf("input= contains no \\n or \\r, but starts with a space. Please remove the leading space, or use text=, file= or cmd=")
66
-
} elseif (length(grep('', input, fixed=TRUE)) &&!file.exists(input)) { # file name or path containing spaces is not a command
66
+
} elseif (length(grep('', input, fixed=TRUE)) &&!file.exists(gsub("^file://", "", input))) { # file name or path containing spaces is not a command. file.exists() doesn't understand file:// (#7550)
67
67
cmd=input
68
68
if (input_has_vars&& getOption("datatable.fread.input.cmd.message", TRUE)) {
69
69
messagef("Taking input= as a system command because it contains a space ('%s'). If it's a filename please remove the space, or use file= explicitly. A variable is being passed to input= and when this is taken as a system command there is a security concern if you are creating an app, the app could have a malicious user, and the app is not running in a secure environment; e.g. the app is running as root. Please read item 5 in the NEWS file for v1.11.6 for more information and for the option to suppress this message.", cmd)
cat("\n**** Skipping 7 NaN/NA algo='exact' tests because .Machine$longdouble.digits==", .Machine$longdouble.digits, " (!=64); e.g. under valgrind\n\n", sep="")
14
+
cat("\n**** Skipping 8 NaN/NA algo='exact' tests because .Machine$longdouble.digits==", .Machine$longdouble.digits, " (!=64); e.g. under valgrind\n\n", sep="")
15
15
# for Matt when he runs valgrind it is 53, but 64 when running regular R
16
16
# froll.c uses long double and appears to require full long double accuracy in the algo='exact'
test(6001.740, frollvar(c(1.5,2.5,2,NA), c(3,3)), list(c(NA,NA,0.25,NA), c(NA,NA,0.25,NA)), output="running sequentially, because outer parallelism has been used", options=c(datatable.verbose=TRUE)) # ensure no nested parallelism in rolling functions #7352
# "yaml" # for fread's yaml argument (csvy capability)
12
12
# # zoo # In DESCRIPTION:Suggests otherwise R CMD check warning: '::' or ':::' import not declared from: 'zoo'; it is tested in other.Rraw though
13
13
14
-
if (exists("test.data.table",.GlobalEnv,inherits=FALSE) ||
14
+
if (exists("test.data.table",.GlobalEnv,inherits=FALSE) ||
15
15
!"package:data.table" %in% search()) {
16
-
stop("Usage: R CMD INSTALL; require(data.table); test.data.table('other.Rraw')")
16
+
stop(
17
+
"Usage: R CMD INSTALL; require(data.table); test.data.table('other.Rraw')\n",
18
+
" Did you try running it under cc()?"
19
+
)
17
20
# running other.Raw in dev mode (i.e. when data.table is not installed) is not intended to work
18
21
}
19
22
@@ -47,7 +50,7 @@ cat("\n")
47
50
print(sessionInfo())
48
51
cat("\n")
49
52
50
-
if (all(c("package:reshape","package:reshape2") %in% search())) {
53
+
if (all(c("package:reshape","package:reshape2") %in% search())) {
51
54
warning("Packages 'reshape' and 'reshape2' are both loaded. There have been problems before when you don't use the :: namespace prefix to disambiguate. Probably best to either remove.packages('reshape') and use reshape2 instead, or always use :: when packages mask non-generic names.")
52
55
}
53
56
@@ -181,10 +184,14 @@ if (loaded[["knitr"]]) {
181
184
# kable in knitr v1.6 uses DF[...] syntax inside it but the user might have passed a data.table.
@@ -531,6 +538,9 @@ if (loaded[["xts"]]) { # was 1465 in tests.Rraw, #5516
531
538
# was 2108 in tests.Rraw, #5516
532
539
# first and last should no longer load xts namespace, #3857, below commented test for interactive validation when xts present but not loaded or attached
# ensure := and set are consistent if they need to overallocate
22009
22009
DT = data.table(); DT2 = data.table()
22010
22010
test(2356.3, options=c(datatable.alloccol=1L), {for (i in seq(10L)) set(DT, j = sprintf("V%d",i), value = i); DT}, {for (i in seq(10)) DT2[, sprintf("V%d",i) := i]; DT2})
0 commit comments