Skip to content

Commit 4d5d839

Browse files
committed
Return a data.trame object and use data.table::fread()/fwrite() instead of readr::read_csv()/write_csv()
1 parent 5b5d92d commit 4d5d839

File tree

13 files changed

+131
-84
lines changed

13 files changed

+131
-84
lines changed

DESCRIPTION

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Package: data.io
22
Type: Package
3-
Version: 1.5.1
3+
Version: 1.6.0
44
Title: Read and Write Data in Different Formats
55
Description: Read or write data from many different formats (tabular datasets,
66
from statistic software ...) into R objects. Add labels and units in
@@ -12,9 +12,11 @@ Maintainer: Philippe Grosjean <phgrosjean@sciviews.org>
1212
Depends:
1313
R (>= 4.2.0)
1414
Imports:
15+
data.table (>= 1.15.4),
1516
Hmisc (>= 5.0.1),
1617
lifecycle (>= 1.0.3),
1718
utils (>= 4.2.0),
19+
R.utils (>= 2.13.0),
1820
readr (>= 2.1.4),
1921
rlang (>= 1.1.1),
2022
svBase (>= 1.4.0),
@@ -41,7 +43,7 @@ License: MIT + file LICENSE
4143
URL: https://github.com/SciViews/data.io, https://www.sciviews.org/data.io/
4244
BugReports: https://github.com/SciViews/data.io/issues
4345
Roxygen: list(markdown = TRUE)
44-
RoxygenNote: 7.2.3
46+
RoxygenNote: 7.3.2
4547
VignetteBuilder: knitr
4648
Encoding: UTF-8
4749
Language: en-US

NAMESPACE

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ export(unlabelize)
3636
export(write)
3737
importFrom(Hmisc,"label<-")
3838
importFrom(Hmisc,label)
39+
importFrom(R.utils,gunzip)
40+
importFrom(data.table,fread)
41+
importFrom(data.table,fwrite)
3942
importFrom(lifecycle,badge)
4043
importFrom(lifecycle,deprecate_soft)
4144
importFrom(readr,default_locale)

NEWS.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# data.io 1.6.0
2+
3+
- Now the default object returned by `read()` is a `data.trame` object.
4+
5+
- The `read()` function now uses `data.table::fread()` and `data.table::fwrite()` for CSV and TSV files instead of the {readr} function. Consequently, {data.table} and {R.utils} (that {data.table} uses to read compressed CSV/TSV data) are now also imported. The previous `readr::read_csv()` and `readr::write_csv()` functions are now accessible with type `csv_alt`. Idem for types `csv2_alt` and `tsv_alt`.
6+
17
# data.io 1.5.1
28

39
- License changed to MIT for better and wider use.

R/data.io-package.R

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@
1717
#' - [labelise()] adds a `label`, and possibly a `units` attributes to an
1818
#' object, to be used while pretty printing a table or plot.
1919
#'
20-
#' @docType package
21-
#' @name data.io-package
2220

2321
## usethis namespace: start
22+
#' @importFrom data.table fread fwrite
2423
#' @importFrom tibble tibble tribble as_tibble is_tibble add_column
2524
#' @importFrom tsibble as_tsibble
2625
#' @importFrom utils .DollarNames data download.file
26+
#' @importFrom R.utils gunzip
2727
#' @importFrom readr default_locale read_lines
2828
#' @importFrom rlang quos
2929
#' @importFrom svBase default_dtx
3030
#' @importFrom lifecycle badge deprecate_soft
3131
## usethis namespace: end
32-
NULL
32+
"_PACKAGE"

R/read.R

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@
145145
#' (iris <- read(data_example("iris.tsv")))
146146
#' (iris <- read(data_example("iris.xls")))
147147
#' (iris <- read(data_example("iris.xlsx")))
148-
#' (iris <- read(data_example("iris.rds"))) # Does not tranform into tibble!
148+
#' (iris <- read(data_example("iris.rds")))
149149
#' #(iris <- read(data_example("iris.syd"))) ##
150150
#' #(iris <- read(data_example("iris.csvy"))) ##
151151
#' #(iris <- read(data_example("iris.csvy.zip"))) ##
@@ -172,7 +172,11 @@
172172
#' (mtcars <- read(readr_example("mtcars.csv")))
173173
#' (mtcars <- read(readr_example("mtcars.csv.zip")))
174174
#' (mtcars <- read(readr_example("mtcars.csv.bz2")))
175-
#' (challenge <- read(readr_example("challenge.csv"), guess_max = 1001))
175+
#' (challenge <- read(readr_example("challenge.csv")))
176+
#' # Or using readr::read_csv()... There are differences!
177+
#' (challenge2 <- read$csv_alt(readr_example("challenge.csv"), guess_max = 1001))
178+
#' sapply(challenge, class)
179+
#' sapply(challenge2, class)
176180
#' (massey <- read(readr_example("massey-rating.txt")))
177181
#' # By default, the type cannot be guessed from the extension
178182
#' # This is a space-separated vaules file (ssv)
@@ -529,8 +533,8 @@ quiet = FALSE, force = FALSE, ...) {
529533
}
530534

531535
# Record the comments, lang, lang_encoding and origin of the data
532-
cmt <- comment(res)
533-
cmt[] <- c(cmt, comments)
536+
cmt <- c(comment(res), comments)
537+
#cmt[] <- c(cmt, comments)
534538
if (is.null(cmt)) cmt2 <- "" else cmt2 <- cmt
535539
attr(cmt2, "lang") <- lang
536540
attr(cmt2, "lang_encoding") <- lang_encoding

R/read_write_option.R

Lines changed: 48 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,20 @@ read_write_option <- function(new_type) {
2929
opts <- getOption("read_write", default = tibble::tribble(
3030
~type, ~read_fun, ~read_header,
3131
~write_fun, ~comment,
32-
"csv", "readr::read_csv", "data.io::hread_text",
33-
"readr::write_csv", "comma separated values",
34-
"csv2", "readr::read_csv2", "data.io::hread_text",
35-
NA, "semicolon separated values",
32+
"csv", "data.table::fread", "data.io::hread_text",
33+
"data.table::fwrite", "comma separated values",
34+
"csv_alt", "readr::read_csv", "data.io::hread_text",
35+
"readr::write_csv", "comma separated values (using readr)",
36+
"csv2", "data.table::fread", "data.io::hread_text",
37+
"data.table::fwrite", "semicolon separated values",
38+
"csv2_alt", "readr::read_csv2", "data.io::hread_text",
39+
NA, "semicolon separated values (using readr)",
3640
"xlcsv", "readr::read_csv", "data.io::hread_text",
3741
"readr::write_excel_csv", "write a CSV file more easily readable by Excel",
38-
"tsv", "readr::read_tsv", "data.io::hread_text",
39-
"readr::write_tsv", "tab separated values",
42+
"tsv", "data.table::fread", "data.io::hread_text",
43+
"data.table::fwrite", "tab separated values",
44+
"tsv_alt", "readr::read_tsv", "data.io::hread_text",
45+
"readr::write_tsv", "tab separated values (using readr)",
4046
"fwf", "readr::read_fwf", "data.io::hread_text",
4147
NA, "fixed width file", # TODO: a writer here!
4248
"log", "readr::read_log", NA,
@@ -52,28 +58,46 @@ read_write_option <- function(new_type) {
5258
NA, "space separated values (strict)",
5359
"ssv2", "readr::read_table2", "data.io::hread_text",
5460
NA, "space separated values (relaxed)",
55-
"csv.gz", "readr::read_csv", "data.io::hread_text",
56-
"readr::write_csv", "gz compressed comma separated values",
57-
"csv2.gz", "readr::read_csv2", "data.io::hread_text",
58-
NA, "gz compressed semicolon separated values",
59-
"tsv.gz", "readr::read_tsv", "data.io::hread_text",
60-
"readr::write_tsv", "gz compressed tab separated values",
61+
"csv.gz", "data.table::fread", "data.io::hread_text",
62+
"data.table::fwrite", "gz compressed comma separated values",
63+
"csv.gz_alt", "readr::read_csv", "data.io::hread_text",
64+
"readr::write_csv", "gz compressed comma separated values (using readr)",
65+
"csv2.gz", "data.table::fread", "data.io::hread_text",
66+
"data.table::fwrite", "gz compressed semicolon separated values",
67+
"csv2.gz_alt", "readr::read_csv2", "data.io::hread_text",
68+
NA, "gz compressed semicolon separated values (using readr)",
69+
"tsv.gz", "data.table::fread", "data.io::hread_text",
70+
"data.table::fwrite", "gz compressed tab separated values",
71+
"tsv.gz_alt", "readr::read_tsv", "data.io::hread_text",
72+
"readr::write_tsv", "gz compressed tab separated values (using readr)",
6173
"txt.gz", "readr::read_file", NA,
6274
"readr::write_file", "gz compressed text file",
63-
"csv.bz2", "readr::read_csv", "data.io::hread_text",
64-
"readr::write_csv", "bz2 compressed comma separated values",
65-
"csv2.bz2","readr::read_csv2", "data.io::hread_text",
66-
NA, "bz2 compressed semicolon separated values",
67-
"tsv.bz2", "readr::read_tsv", "data.io::hread_text",
68-
"readr::write_tsv", "bz2 compressed tab separated values",
75+
"csv.bz2", "data.table::fread", "data.io::hread_text",
76+
"data.table::fwrite", "bz2 compressed comma separated values",
77+
"csv.bz2_alt", "readr::read_csv", "data.io::hread_text",
78+
"readr::write_csv", "bz2 compressed comma separated values (using readr)",
79+
"csv2.bz2","data.table::fread", "data.io::hread_text",
80+
"data.table::fwrite", "bz2 compressed semicolon separated values",
81+
"csv2.bz2_alt","readr::read_csv2", "data.io::hread_text",
82+
NA, "bz2 compressed semicolon separated values (using readr)",
83+
"tsv.bz2", "data.table::fread", "data.io::hread_text",
84+
"data.table::fwrite", "bz2 compressed tab separated values",
85+
"tsv.bz2_alt", "readr::read_tsv", "data.io::hread_text",
86+
"readr::write_tsv", "bz2 compressed tab separated values(using readr)",
6987
"txt.bz2", "readr::read_file", "data.io::hread_text",
7088
"readr::write_file", "bz2 compressed text file",
71-
"csv.xz", "readr::read_csv", "data.io::hread_text",
72-
"readr::write_csv", "xz compressed comma separated values",
73-
"csv2.xz", "readr::read_csv2", "data.io::hread_text",
74-
NA, "xz compressed semicolon separated values",
75-
"tsv.xz", "readr::read_tsv", "data.io::hread_text",
76-
"readr::write_tsv", "xz compressed tab separated values",
89+
"csv.xz", "data.table::fread", "data.io::hread_text",
90+
"data.table::fwrite", "xz compressed comma separated values",
91+
"csv.xz_alt", "readr::read_csv", "data.io::hread_text",
92+
"readr::write_csv", "xz compressed comma separated values (using readr)",
93+
"csv2.xz", "data.table::fread", "data.io::hread_text",
94+
"data.table::fwrite", "xz compressed semicolon separated values",
95+
"csv2.xz_alt", "readr::read_csv2", "data.io::hread_text",
96+
NA, "xz compressed semicolon separated values (using readr)",
97+
"tsv.xz", "data.table::fread", "data.io::hread_text",
98+
"data.table::fwrite", "xz compressed tab separated values",
99+
"tsv.xz_alt", "readr::read_tsv", "data.io::hread_text",
100+
"readr::write_tsv", "xz compressed tab separated values (using readr)",
77101
"txt.xz", "readr::read_file", NA,
78102
"readr::write_file", "xz compressed text file",
79103
# Buggy right now!! "csvy", "csvy::read_csvy", NA, "csvy::write_csvy",

_pkgdown.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ development:
77

88
template:
99
package: svPkgdown
10-
bootstrap: 5
1110
params:
1211
bootswatch: spacelab
1312
mathjax: true

inst/CITATION

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,13 @@
1-
citHeader("To cite SciViews-R in publications use:")
2-
3-
citEntry(
4-
entry = "Manual",
5-
title = "SciViews::R",
6-
author = personList(as.person("Philippe Grosjean"),
7-
as.person("Guyliann Engels")),
8-
organization = "UMONS",
9-
address = "MONS, Belgium",
10-
year = version$year,
11-
url = "https://sciviews.r-universe.dev/",
12-
13-
textVersion =
14-
paste("Grosjean, Ph. & Engels, G. (", version$year, "). ",
15-
"SciViews::R. ",
16-
"UMONS, Mons, Belgium. ",
17-
"URL https://sciviews.r-universe.dev/.",
18-
sep = "")
1+
bibentry(
2+
bibtype = "Misc",
3+
header = "To cite SciViews::R in publications, please use",
4+
author = c(person("Philippe", "Grosjean", role = c("aut", "cre"),
5+
email = "phgrosjean@sciviews.org",
6+
comment = c(ORCID = "0000-0002-2694-9471")),
7+
person("Guyliann", "Engels", role = "aut",
8+
email = "guyliann.engels@umons.ac.be",
9+
comment = c(ORCID = "0000-0001-9514-1014"))),
10+
title = "SciViews: A Series of Tools for the R Language and Environment",
11+
year = "2025",
12+
url = "https://sciviews.r-universe.dev/",
1913
)
20-
21-
citFooter("We have invested a lot of time and effort in creating SciViews-R,",
22-
"please cite it when using it together with R.",
23-
"See also", sQuote("citation()"),
24-
"for citing R.")

inst/WORDLIST

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ tbl
6767
tibble
6868
tibble's
6969
tidyverse
70+
trame
71+
TSV
7072
Tulear
7173
unitless
7274
variegatus

man/data.io-package.Rd

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)