Skip to content

Commit 92105e8

Browse files
Revert "Change logical01 option default to TRUE (#5843)" (#5855)
This reverts commit 6782251.
1 parent 78dee17 commit 92105e8

File tree

6 files changed

+23
-25
lines changed

6 files changed

+23
-25
lines changed

NEWS.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22

33
# data.table [v1.14.99](https://github.com/Rdatatable/data.table/milestone/29) (in development)
44

5-
## BREAKING CHANGES
5+
## BREAKING CHANGE
66

77
1. `shift` and `nafill` will now raise error `input must not be matrix or array` when `matrix` or `array` is provided on input, rather than giving useless result, [#5287](https://github.com/Rdatatable/data.table/issues/5287). Thanks to @ethanbsmith for reporting.
88

9-
2. The `logical01=` arguments in `fread()` and `fwrite()` change their default from `getOption("datatable.logical01", FALSE)` to `getOption("datatable.logical01", TRUE)`. That is, they change from `FALSE` to `TRUE`, but for now you can retain the old behavior by setting option `datatable.logical01`. See the discussion in v1.11.0 (May 2018) release notes where this planned deprecation was first discussed. In the future, the option will be removed.
10-
119
## NEW FEATURES
1210

1311
1. `nafill()` now applies `fill=` to the front/back of the vector when `type="locf|nocb"`, [#3594](https://github.com/Rdatatable/data.table/issues/3594). Thanks to @ben519 for the feature request. It also now returns a named object based on the input names. Note that if you are considering joining and then using `nafill(...,type='locf|nocb')` afterwards, please review `roll=`/`rollends=` which should achieve the same result in one step more efficiently. `nafill()` is for when filling-while-joining (i.e. `roll=`/`rollends=`/`nomatch=`) cannot be applied.

R/fread.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ na.strings=getOption("datatable.na.strings","NA"), stringsAsFactors=FALSE, verbo
44
skip="__auto__", select=NULL, drop=NULL, colClasses=NULL, integer64=getOption("datatable.integer64","integer64"),
55
col.names, check.names=FALSE, encoding="unknown", strip.white=TRUE, fill=FALSE, blank.lines.skip=FALSE, key=NULL, index=NULL,
66
showProgress=getOption("datatable.showProgress",interactive()), data.table=getOption("datatable.fread.datatable",TRUE),
7-
nThread=getDTthreads(verbose), logical01=getOption("datatable.logical01",TRUE), keepLeadingZeros=getOption("datatable.keepLeadingZeros",FALSE),
7+
nThread=getDTthreads(verbose), logical01=getOption("datatable.logical01",FALSE), keepLeadingZeros=getOption("datatable.keepLeadingZeros",FALSE),
88
yaml=FALSE, autostart=NA, tmpdir=tempdir(), tz="UTC")
99
{
1010
if (missing(input)+is.null(file)+is.null(text)+is.null(cmd) < 3L) stopf("Used more than one of the arguments input=, file=, text= and cmd=.")

R/fwrite.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ fwrite = function(x, file="", append=FALSE, quote="auto",
33
sep2=c("","|",""), eol=if (.Platform$OS.type=="windows") "\r\n" else "\n",
44
na="", dec=".", row.names=FALSE, col.names=TRUE,
55
qmethod=c("double","escape"),
6-
logical01=getOption("datatable.logical01", TRUE),
6+
logical01=getOption("datatable.logical01", FALSE), # due to change to TRUE; see NEWS
77
logicalAsInt=logical01,
88
scipen=getOption('scipen', 0L),
99
dateTimeAs = c("ISO","squash","epoch","write.csv"),

inst/tests/tests.Rraw

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7760,14 +7760,14 @@ read_table = function(str, ...) {
77607760
test(1552.1, fread(str, na.strings="#N/A"), read_table(str, na.strings="#N/A"))
77617761
test(1552.2, fread(str, na.strings=c("#N/A", "-999")), read_table(str, na.strings=c("#N/A", "-999")))
77627762
test(1552.3, fread(str, na.strings=c("#N/A", "-999", "+1")), read_table(str, na.strings=c("#N/A", "-999", "+1")))
7763-
test(1552.4, fread(str, na.strings=c("#N/A", "-999", "+1", "1"), logical01=FALSE), read_table(str, na.strings=c("#N/A", "-999", "+1", "1"))) # enabled by FR #2927
7763+
test(1552.4, fread(str, na.strings=c("#N/A", "-999", "+1", "1")), read_table(str, na.strings=c("#N/A", "-999", "+1", "1"))) # enabled by FR #2927
77647764
test(1552.5, fread(str, na.strings=c("#N/A", "-999", "FALSE")), error="NAstring <<FALSE>>.*boolean.*not permitted")
77657765
test(1552.6, fread("A\n1.0\n2\n-", na.strings=c("-")), data.table(A=c(1.0, 2.0, NA)))
77667766
test(1552.7, fread(str, na.strings=c("#N/A", "-999", "+1", "1"), logical01=TRUE),
77677767
error="NAstring <<1>> and logical01=TRUE.*not permitted")
77687768
str = "a,b,c\n0,1,2\n1,0,2"
7769-
test(1552.8, fread(str, na.strings = "0", logical01=FALSE), data.table(a=c(NA,1L), b=c(1L,NA), c=c(2L,2L)))
7770-
test(1552.9, fread(str, na.strings = c("0","1"), logical01=FALSE), data.table(a=c(NA,NA), b=c(NA,NA), c=c(2L,2L)))
7769+
test(1552.8, fread(str, na.strings = "0"), data.table(a=c(NA,1L), b=c(1L,NA), c=c(2L,2L)))
7770+
test(1552.9, fread(str, na.strings = c("0","1")), data.table(a=c(NA,NA), b=c(NA,NA), c=c(2L,2L)))
77717771

77727772
# FR #1177: 'quote' option of 'print.data.table'
77737773
DT1 <- data.table(s1=paste(" ",LETTERS[1:5],sep=""),s2=LETTERS[1:5])
@@ -10445,8 +10445,8 @@ d = tempfile("dir")
1044510445
test(1703.16, fread(text=c('a,b','1,2'), tmpdir=d),
1044610446
error=base_messages$cant_open_file, warning=base_messages$missing_file)
1044710447
dir.create(d)
10448-
test(1703.17, fread(text=c('a,b','1,2'), tmpdir=d), data.table(a=TRUE, b=2L))
10449-
test(1703.18, fread(text=c('a,b','1,2')), data.table(a=TRUE, b=2L))
10448+
test(1703.17, fread(text=c('a,b','1,2'), tmpdir=d), data.table(a=1L,b=2L))
10449+
test(1703.18, fread(text=c('a,b','1,2')), data.table(a=1L, b=2L))
1045010450
unlink(d)
1045110451
test(1703.19, fread(text="a b c"), data.table(a=logical(), b=logical(), c=logical())) # text= with no \n, #4689
1045210452

@@ -10904,10 +10904,10 @@ test(1743.03, fread("a,b\n1,a", colClasses=c(NA, TRUE)), error="colClasses is.*l
1090410904
test(1743.04, fread("a,b\n1,a", colClasses=c("character", "factor")), data.table(a="1", b=factor("a")))
1090510905

1090610906
# and the length-1 character case; #4237
10907-
test(1743.041, fread("a,b\n1,a", colClasses=NA_character_), data.table(a=TRUE, b="a"))
10908-
test(1743.042, fread("a,b\n1,a", colClasses=""), data.table(a=TRUE, b="a"))
10909-
test(1743.043, fread("a\n1", colClasses=NA_character_), data.table(a=TRUE))
10910-
test(1743.044, fread("a\n1", colClasses=""), data.table(a=TRUE))
10907+
test(1743.041, fread("a,b\n1,a", colClasses=NA_character_), data.table(a=1L, b="a"))
10908+
test(1743.042, fread("a,b\n1,a", colClasses=""), data.table(a=1L, b="a"))
10909+
test(1743.043, fread("a\n1", colClasses=NA_character_), data.table(a=1L))
10910+
test(1743.044, fread("a\n1", colClasses=""), data.table(a=1L))
1091110911

1091210912
# Issue #1634: 'fread doesn't check colClasses to be valid type'
1091310913
# Currently using BioGenerics, which doesn't support USE.NAMES
@@ -13255,8 +13255,8 @@ test(1957.3, fread("A,B\na,b\nc,d\n", stringsAsFactors=TRUE, verbose=TRUE), data
1325513255

1325613256
# misc. coverage tests in fread
1325713257
test(1958.01, fread('\U0001f64d', encoding = 'UTF-16'), error = "Argument 'encoding' must be")
13258-
test(1958.02, fread('a,b\n1,2', nrows = NA_real_), data.table(a=TRUE, b=2L))
13259-
test(1958.03, fread('a,b\n1,2', nrows = -1), data.table(a=TRUE, b=2L))
13258+
test(1958.02, fread('a,b\n1,2', nrows = NA_real_), data.table(a = 1L, b = 2L))
13259+
test(1958.03, fread('a,b\n1,2', nrows = -1), data.table(a = 1L, b = 2L))
1326013260
test(1958.04, fread('a,b\n1,2', key = 1), error = 'must be a character vector naming columns')
1326113261
test(1958.05, fread("A,B,C\n1,2,3\n3,4,5\n0,0,0\n", nrows=0), data.table(A=integer(), B=integer(), C=integer())) #2747
1326213262
test(1958.06, fread("A,B,C\n1,2,3\n3,4,5\n0,0,100\n", nrows=0, sep=','), data.table(A=integer(), B=integer(), C=integer()))
@@ -13265,12 +13265,12 @@ test(1958.08, fread('A,B,C,D\n"a,b",4,5\n"c,d",6,7,8\n', fill=TRUE), data.table(
1326513265
test(1958.09, fread("A,B,C\n1,2,3\n3,4,5\n0,0,0\n", nrows=0L), data.table(A=integer(), B=integer(), C=integer())) # nrows=0 vs 0L, 4686
1326613266
test(1958.10, fread("A,B,C\n1,2,3\n3,4,5\n0,0,100\n", nrows=0L, sep=','), data.table(A=integer(), B=integer(), C=integer()))
1326713267
# nrows=0 should perform a full sample to get the empty column types right as documented, #4029
13268-
test(1958.11, fread('A,B,C,D\n1,CHAR,"CHAR",3.1', nrows=0L), data.table(A=logical(), B=character(), C=character(), D=numeric()))
13268+
test(1958.11, fread('A,B,C,D\n1,CHAR,"CHAR",3.1', nrows=0L), data.table(A=integer(), B=character(), C=character(), D=numeric()))
1326913269
# .. one different type in the middle of under 100
1327013270
txt = paste(c("A,B\n1,2\n", rep("3,4\n",48), "3,4.1\n", rep("5,6\n",48)), collapse="")
1327113271
test(1958.12, fread(text=txt, nrows=0L), data.table(A=integer(), B=numeric()))
1327213272
test(1958.13, fread(text=txt, nrows=0L, skip=1L), data.table(V1=integer(), V2=numeric()))
13273-
test(1958.14, fread(text=txt, nrows=1L), data.table(A=TRUE, B=2L)) # B integer not numeric because sample is min(nrows,100) when nrows>=1
13273+
test(1958.14, fread(text=txt, nrows=1L), data.table(A=1L, B=2L)) # B integer not numeric because sample is min(nrows,100) when nrows>=1
1327413274
test(1958.15, fread(text=txt, nrows=1L, skip=1L), data.table(V1=1L, V2=2L))
1327513275
test(1958.16, fread(text=txt, nrows=2L), data.table(A=c(1L,3L), B=c(2L,4L)))
1327613276
test(1958.17, fread(text=txt, nrows=2L, skip=1L), data.table(V1=c(1L,3L), V2=c(2L,4L)))
@@ -13292,10 +13292,10 @@ eols = c("\n", "\r\n", "\r", "\n\r")
1329213292
for (i in 1:4) {
1329313293
eol = eols[i]
1329413294
src = paste(c("A", "B", "...", ",,,,,", "c1,c2,c3", "1,2,3"), collapse=eol)
13295-
test(1959 + (i*0.1), fread(text=src, skip=4), data.table(c1=TRUE, c2=2L, c3=3L))
13295+
test(1959 + (i*0.1), fread(text=src, skip=4), data.table(c1=1L, c2=2L, c3=3L))
1329613296
}
1329713297
test(1959.5, fread("A\n\nB\n\nC\n1\n", skip=2), data.table(B=c("", "C", "1")))
13298-
test(1959.6, fread("A,B\r\r\nX,Y\r\r\nB,C\r\r\n1,2", skip=4), data.table(B=TRUE, C=2L))
13298+
test(1959.6, fread("A,B\r\r\nX,Y\r\r\nB,C\r\r\n1,2", skip=4), data.table(B=1L, C=2L))
1329913299

1330013300
# empty set with constant j, #3173
1330113301
DT = data.table(
@@ -14519,9 +14519,9 @@ test(2013.3, DT[2], error="Column 2 ['b'] is length 4 but column 1 is length 3;
1451914519
## new fread keepLeadingZeros parameter in v1.12.2
1452014520
# leading zeros in both integer and float numbers are converted to character when keepLeadingZeros=TRUE
1452114521
test_data_single <- "0, 00, 01, 00010, 002.01\n"
14522-
test(2014.1, fread(test_data_single), data.table(FALSE, 0L, 1L, 10L, 2.01))
14523-
test(2014.2, fread(test_data_single, keepLeadingZeros = FALSE), data.table(FALSE, 0L, 1L, 10L, 2.01))
14524-
test(2014.3, fread(test_data_single, keepLeadingZeros = TRUE), data.table(FALSE, "00","01","00010","002.01"))
14522+
test(2014.1, fread(test_data_single), data.table(0L, 0L, 1L, 10L, 2.01))
14523+
test(2014.2, fread(test_data_single, keepLeadingZeros = FALSE), data.table(0L, 0L, 1L, 10L, 2.01))
14524+
test(2014.3, fread(test_data_single, keepLeadingZeros = TRUE), data.table(0L, "00","01","00010","002.01"))
1452514525
# converts whole column to character when keepLeadingZeros = TRUE and at least 1 value contains a leading zero
1452614526
test_data_mult <- paste0(c(sample(1:100),"0010",sample(1:100)), collapse="\n")
1452714527
test(2014.4, class(fread(test_data_mult, keepLeadingZeros = TRUE)[[1]]), "character")

man/fread.Rd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ key=NULL, index=NULL,
2222
showProgress=getOption("datatable.showProgress", interactive()),
2323
data.table=getOption("datatable.fread.datatable", TRUE),
2424
nThread=getDTthreads(verbose),
25-
logical01=getOption("datatable.logical01", TRUE),
25+
logical01=getOption("datatable.logical01", FALSE), # due to change to TRUE; see NEWS
2626
keepLeadingZeros = getOption("datatable.keepLeadingZeros", FALSE),
2727
yaml=FALSE, autostart=NA, tmpdir=tempdir(), tz="UTC"
2828
)

man/fwrite.Rd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ fwrite(x, file = "", append = FALSE, quote = "auto",
1111
eol = if (.Platform$OS.type=="windows") "\r\n" else "\n",
1212
na = "", dec = ".", row.names = FALSE, col.names = TRUE,
1313
qmethod = c("double","escape"),
14-
logical01 = getOption("datatable.logical01", TRUE),
14+
logical01 = getOption("datatable.logical01", FALSE), # due to change to TRUE; see NEWS
1515
logicalAsInt = logical01, # deprecated
1616
scipen = getOption('scipen', 0L),
1717
dateTimeAs = c("ISO","squash","epoch","write.csv"),

0 commit comments

Comments
 (0)