Read Non-Rectangular Text Data

Related tags

Utilities meltr
Overview

meltr

R-CMD-check Codecov test coverage

The wicked witch of the west saying 'I'm Melting, Melting!!!!!'

The goal of ‘meltr’ is to provide a fast and friendly way to read non-rectangular data (like ragged forms of ‘csv’, ‘tsv’, and ‘fwf’).

Standard tools like readr::read_csv() can cope to some extent with unusual inputs, like files with empty rows or newlines embedded in strings. But some files are so wacky that standard tools don’t work at all, and instead you have to take the file to pieces and reassemble to get structured data you can work with.

The meltr package provides tools to do this.

Installation

You can install the released version of meltr from CRAN with:

install.packages("meltr")

The problem with non-rectangular data

Here’s a contrived example that breaks two assumptions made by common tools like readr::read_csv().

  1. There are more cells in some rows than others.
  2. There are mixed data types within each column.

In contrast, the melt_csv() function reads the file one cell at a time, importing each cell of the file into a whole row of the final data frame.

# A tibble: 12 x 4 #> row col data_type value #> #> 1 1 1 character Help #> 2 1 2 missing #> 3 1 3 character 007 #> 4 1 4 character I'm #> 5 2 1 date 1960-09-30 #> 6 2 2 logical FALSE #> 7 2 3 character trapped in #> 8 2 4 integer 7 #> 9 2 5 double 1.21 #> 10 3 1 character non-rectangular #> 11 3 2 character data #> 12 3 3 missing ">
writeLines("Help,,007,I'm
1960-09-30,FALSE,trapped in,7,1.21
non-rectangular,data,NA", "messy.csv")

library(meltr)

melt_csv("messy.csv")
#> # A tibble: 12 x 4
#>      row   col data_type value          
#>                     
#>  1     1     1 character Help           
#>  2     1     2 missing              
#>  3     1     3 character 007            
#>  4     1     4 character I'm            
#>  5     2     1 date      1960-09-30     
#>  6     2     2 logical   FALSE          
#>  7     2     3 character trapped in     
#>  8     2     4 integer   7              
#>  9     2     5 double    1.21           
#> 10     3     1 character non-rectangular
#> 11     3     2 character data           
#> 12     3     3 missing   

The output of melt_csv() gives us:

  • A data frame of results – structured data about un-structured data!
  • Rows of data corresponding to cells of the input data.
  • Empty cells such as the cell on row 1, but not missing cells at the ends of rows 1 and 3.
  • The raw, unconverted data, no data type conversion is attempted – every value is imported as a string, and the data_type column merely gives meltr’s best guess of what the data types ought to be.

What are some ways you can you use this? To begin with, you can do some simple manipulations with ordinary functions.

For example you could extract the words.

% filter(data_type == "character") #> # A tibble: 6 x 4 #> row col data_type value #> #> 1 1 1 character Help #> 2 1 3 character 007 #> 3 1 4 character I'm #> 4 2 3 character trapped in #> 5 3 1 character non-rectangular #> 6 3 2 character data ">
library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union

data <- melt_csv("messy.csv")

data %>%
  filter(data_type == "character")
#> # A tibble: 6 x 4
#>     row   col data_type value          
#>                    
#> 1     1     1 character Help           
#> 2     1     3 character 007            
#> 3     1     4 character I'm            
#> 4     2     3 character trapped in     
#> 5     3     1 character non-rectangular
#> 6     3     2 character data

Or find if there are missing entries.

# A tibble: 2 x 4 #> row col data_type value #> #> 1 1 2 missing #> 2 3 3 missing ">
data %>%
  filter(data_type == "missing")
#> # A tibble: 2 x 4
#>     row   col data_type value
#>          
#> 1     1     2 missing    
#> 2     3     3 missing   
Comments
  • Release meltr 1.0.0

    Release meltr 1.0.0

    First release:

    Prepare for release:

    • [x] devtools::build_readme()
    • [x] urlchecker::url_check()
    • [x] devtools::check(remote = TRUE, manual = TRUE)
    • [x] devtools::check_win_devel()
    • [x] rhub::check_for_cran()
    • [x] rhub::check(platform = 'ubuntu-rchk')
    • [x] rhub::check_with_sanitizers()
    • [ ] Draft blog post

    Submit to CRAN:

    • [x] usethis::use_version('major')
    • [x] devtools::submit_cran()
    • [x] Approve email

    Wait for CRAN...

    • [x] Accepted :tada:
    • [x] usethis::use_github_release()
    • [x] usethis::use_news_md()
    • [x] usethis::use_dev_version()
    • [x] Update install instructions in README
    • [ ] Finish blog post
    • [ ] Tweet
    • [ ] Add link to blog post in pkgdown news menu
    opened by jimhester 10
  • Probably don't need tzdb

    Probably don't need tzdb

    Since results are always character, and never POSIXct/Date?

    The locale() helper, check_tz(), uses a tzdb helper to check if a valid tz argument is provided, but I don't think the tz argument would ever be used by meltr so that could probably be removed to

    opened by DavisVaughan 2
  • melt_table2 crashing R session

    melt_table2 crashing R session

    Hi,

    here's my MRE (XXX.txt) meltr::melt_table2("XXX.txt")

    result: image

    Here's my session info: image

    If it is of any help I'll attach my Windows Event Viewer logs image


    Could the problem be this one? image

    opened by skiamu 1
  • melt_csv

    melt_csv "bad value" error and hard crash examples

    As part of processing some licenced data I have been working with some ragged data. I've managed to create two minimal examples with fake data that break meltr:

    1. "bad value"

    This line is actually an fake version of the start of the file, it really has a large number of blanks at the start.

    Reprex

    meltr::melt_csv(",,,,,,,,,,,,A. 0. Aaaaa 0 AAA aaaaaaaaa,A. 0. Aaaaa 0 AAA aaaaaaaaa,A. 0. Aaaaa 0 AAA aaaaaaaaa,A. 0. Aaaaa 0 AAA aaaaaaaaa,A. 0. Aaaaa AAA aaaaaaaaa,A. 0. Aaaaaaaa aa aaaaaaaaa aaaaaa aa aaa aaaaaa aaaa aaaaaa,A. 0. Aaaaa aa aaa-aaaaaaaaa aaaaaa aaaaaaaaaaa aaa aaaaaaaaaa,A. 0. Aaaaa aa aaa-aaaaaaaaa aaaaaa aaaaaaaaaaa aaa aaaaaaaaaa,A. 0. Aaaaa aa aaa-aaaaaaaaa aaaaaa aaaaaaaaaaa aaa aaaaaaaaaa,A. 0. Aaaaa aa aaa-aaaaaaaaa aaaaaa aaaaaaaaaaa aaa aaaaaaaaaa,A. 0. Aaaaa aa aaa-aaaaaaaaa aaaaaa aaaaaaaaaaa aaa aaaaaaaaaa,A. 0. Aaaaaa aaaaaaaaaaa aaaaaaaaa aaa aaaa aaaaaa aaaaaaa aaaaaa,A. 0. Aaaaaaaaa aa aaaaa,A. 0. Aaaaaaaaa aa aaaaa,A. 0. Aaaaaaaaa aa aaaaa,A. 0. Aaaaaaaaa aa aaaaa,A. 00. Aaaaaaaaa aaaaa aaaaa,A. 00. Aaaaaaaaa aaaaa aaaaa,A. 00. Aaaaaaaaa aaaaa aaaaa,A. 00. Aaaaaaaaaa aaaaaa aaa aaa,A. 00. Aaaaa aaaaaa aaaaaaaaa,A. 00. Aaaaa aaaaaa aaaaaaaaa,A. 00. Aaaaaaaa aa aaaaaaaaaaaaa aaaaaaa,AA. 0. Aaaaaaaaa aa aaaaaaaaa aaaaaaaaaa,AA. 0. Aaaaaaaaa aa aaa aaaaaaaaaa,AA. 0. Aaaaaaaaa aa aaaaa aaaaaaaaa aaaaaaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0.0. Aaaaa aaaaa aaa aaaaaaaaa,AA. 0. Aaaaaaaa aa aaaaa aa aaaa aaaaa aaaaaa,AA. 0. Aaaaaaaa aa aaaaa aa aaaa aaaaa aaaaaa,AA. 0. Aaaaaaaaaaa aa aaaaaaaaa aaaaaaaaa aaaaaaaaa,AA. 00. Aaaaaaaaaaa aa aaaaaaaaa aaaaaaa aaaaaaaaaaa aaaa/aaaaaaaaaaa aaaaaaaaa,AA. 00. Aaa-aaaaaaaa aaaaa aaaaa,AAA. 0. Aaaaaaaaaaa aa aaaaaaaaa aaaaaaa aaaaaaaaa aaaaaaaa aaaaaaaaaa aaaaaaaa,AAA. 0. Aaaa aa aaaaaaaaa,AAA. 0. Aaaa aa aaaaaaaaa,AAA. 0. Aaaaaa aa aaaa aaaa aa aaaaaaaa aaaaaaaaa aaaaaaaaaa aa aaaaaaa,AAA. 0. Aaaaaa aa aaaa aaaa aa aaaaaaaa aaaaaaaaa aaaaaaaaaa aa aaaaaaa,AAA. 0. Aaaa aa a aaaaaaaa aaaa aa aaaaaaa,AAA. 0. Aaaa aa aaaaaaaaa/aaaaaaaaaa aaaaaaaa aaaaaaaaa,AAA. 0. Aaaaaaaaaaaa aaaaaaaaaaaaa aaaaaaaaaa,AAA. 0. Aaaaaaaaa AAA aaa aaaaa,AAA. 0. Aaaa aa a aaaaa aaaaaa aaaaaa,AAA. 00. Aaaa aa aaa aaaaaaaaa,AAA. 00. Aaaa aa aaaa-aaaaaaaaaa aaa aaaa-aaaaaaa aaaaaaaa,\n")
    #> Error in melt_tokens_(data, tokenizer, col_spec_melt, locale_, n_max, : bad value
    

    Created on 2021-10-11 by the reprex package (v2.0.1)

    Session info
    sessionInfo()
    #> R version 4.1.1 (2021-08-10)
    #> Platform: x86_64-w64-mingw32/x64 (64-bit)
    #> Running under: Windows 10 x64 (build 19042)
    #> 
    #> Matrix products: default
    #> 
    #> locale:
    #> [1] LC_COLLATE=English_United Kingdom.1252 
    #> [2] LC_CTYPE=English_United Kingdom.1252   
    #> [3] LC_MONETARY=English_United Kingdom.1252
    #> [4] LC_NUMERIC=C                           
    #> [5] LC_TIME=English_United Kingdom.1252    
    #> 
    #> attached base packages:
    #> [1] stats     graphics  grDevices utils     datasets  methods   base     
    #> 
    #> loaded via a namespace (and not attached):
    #>  [1] knitr_1.36        magrittr_2.0.1    R.cache_0.15.0    rlang_0.4.11     
    #>  [5] fastmap_1.1.0     fansi_0.5.0       stringr_1.4.0     styler_1.6.2     
    #>  [9] highr_0.9         tools_4.1.1       xfun_0.26         R.oo_1.24.0      
    #> [13] utf8_1.2.2        meltr_1.0.0       withr_2.4.2       htmltools_0.5.2  
    #> [17] ellipsis_0.3.2    yaml_2.2.1        digest_0.6.28     tibble_3.1.5     
    #> [21] lifecycle_1.0.1   crayon_1.4.1      purrr_0.3.4       R.utils_2.11.0   
    #> [25] vctrs_0.3.8       fs_1.5.0          glue_1.4.2        evaluate_0.14    
    #> [29] rmarkdown_2.11    reprex_2.0.1      stringi_1.7.5     compiler_4.1.1   
    #> [33] pillar_1.6.3      backports_1.2.1   R.methodsS3_1.8.1 pkgconfig_2.0.3
    

    2. Hard crash RStudio

    This one is using the same environment as the above but because it fully crashes RStudio I can't produce a normal reprex

    meltr::melt_csv("AAAAA,Aaaaaaa,AAAA,AAA AA,AaaAaaaa,Aaaaaaaaa Aaaa,AAAA Aaaaaa Aaaa,AAAA Aaaaaaaa Aaaaa Aaaa,Aaaaaaa,Aaaaaaa (AAA aa),Aaaaaaaaaa Aaaa Aaa Aaaa,Aaaa aa Aaaaaaaaaa,Aaaaaa -Aaaaa 0  (aaaaaa AA0a),Aaaaaa -Aaaaa 0  (aaaaaa AA0a),Aaaaaa -Aaaaa 0 Aaaaaaaa (aaaaaa AA0a),Aaaaaa -Aaaaa 0 Aaaaaaaaaa (aaaaaa AA0a),Aaaaaa - Aaaaa 0+0 (aaaaaa AA0a),Aaaaaaa Aaaaaaa aaaa Aaaaaa Aaaaa (0/0),Aaaaaa - Aaaaaaaaaaa aaaa Aaa-Aaaaaaaaa Aaaaaaa (AAa),Aaaaaa - Aaaaaaaaaaa aaaa Aaaaaaaaa Aaaaaaa (AAa),Aaaaaa - Aaaaaaaaaa aaaa Aaa-aaaaaaaaa Aaaaaaa (AAa),Aaaaaa - Aaaaaaaaaa aaaa Aaaaaaaaa Aaaaaaa (AAa),Aaaaaa - Aaaaaaaaaa aaaa Aaaaa Aaaaaaa (AAa),Aaaaaaa aa Aaaaaaa aaaa Aaaa Aaaaaa Aaaaaaa Aaaaaaa (%),Aaaaaaaaa aaa Aaaaaaa Aaaaaaaaaa Aaaaaa Aaaaaaaa (aaaaaa),Aaaa Aaaaaaaaa aa Aaaaa Aaaaaa Aaaaaaaa (aaaaaa),Aaaaa Aaaaaaaaa aa Aaaaa Aaaaaa Aaaaaaaa (aaaaaa),Aaaaaaaaaa aaa Aaaaaaaaaaa (aaaaaa),Aaaaa -Aaaaaaa (aaaaaa),Aaaaa - Aaaaaaaaa Aaaa Aaaaaaa (aaaaaa),Aaaaa - Aaaaa Aaaaaaaaa  (aaaaaa),Aaaaaa Aaa Aaaaaaaaaa Aaaaa (0-000),Aaaa Aaaaa Aaaaaaa (#),Aaaaa aa Aaaaa (#),Aaaaaaa Aaaaaaaaaaa aa Aaaaaaaaaaa aa Aaaa aa Aaaaaaaaaaaaa Aaaaaaa (0/0),Aaaaa Aaaaaaaaa aa Aaaaaaaaa Aaaaaaaaaa (aaaaaa),Aaaaa Aaaaaaaaa aa Aaa Aaaaaaaaaa (aaaaaa),Aaaaa Aaaaaaaaa Aaaaaaaaaa Aaaaaa Aaaaaaaa (aaaaaa),Aaaaaa - Aaaaaaaaaaa aaaa Aaaaaa (AAa),Aaaaaa - Aaaaaaaaaaa aaaa Aaaaaa (AAa),Aaaaaa - Aaaaaaaaaaa aaaa AAA (AAa),Aaaaaa - Aaaaaaaaaaa aaaa Aaaa Aaa (AAa),Aaaaaa - Aaaaaaaaaaa aaaa Aaaaaaa Aaa (AAa),Aaaaaa - Aaaaaaaaaaa aaaa Aaaa (AAa),Aaaaaa - Aaaaaaaaaaa aaaa AAA Aaaaa aaaa Aaa (Aaaaaaaaaa Aaaaaa) (AAa),Aaaaaa - Aaaaaaaaaaa aaaa AAA Aaaaa aaaa Aaa (Aaaaaaaaaa aaaaaa) (AAa),Aaaaaa - Aaaaaaaaaaa aaaa Aaa Aaaaaaaa (AAa),Aaaaaa - Aaaaaaaaaaa aaaa Aaaaaaaaa Aaaaaaa Aaa (AAA) (AAa),Aaaaaa - Aaaaaaaaaaa aaaa Aaaaaaa Aaaaaa Aaaa Aaa (AAa),Aaaaa -Aaaaaa+Aaaaaaaaa (aaaaa aaaaaa),Aaaaaaa Aaaaa Aaaaaa Aaaaa - Aaaaa a Aaaaaaaa 0000 Aaaaaaaa (0-000),Aaaaaaa aaaa Aaaaaa aa Aaaa Aaaaa Aaaaaa Aaaaa - Aaaaa a Aaaaaaaa 0000 aaaaaaaa (0/0),Aaaaaaa  Aaaaaaa aaaa  Aaaaaaaa Aaaaaaaaaa (0/0),Aaaaaaaaaaa Aaaaaaaaaaaa Aaaaaaaaa Aaaaa (0-000),Aaaaa - Aaa-aaaaaaaa (aaaaaa),AAA Aaaaaaaaaa Aaaaaaaaa Aaaaa (0-000),Aaaaa Aaaaaaaaaa Aaaaaa Aaaaaaaaa Aaaa (AAAAA) - Aaaaaaaaa Aaaaa (0-000),Aaaaa Aaaaaaaaaa Aaaaaa Aaaaaaaaa Aaaa (AAAAA) - Aaaaaaaaaaa Aaaaa (0-000),Aaaa-Aaaa Aaaaaa Aaaaaaaaa Aaaa (AAAAA) - Aaaaaaaaa Aaaaa (0-000),Aaaa-Aaaa Aaaaaa Aaaaaaaaa Aaaa (AAAAA) - Aaaaaaaaaaa Aaaaa (0-000),Aaaaaaaa Aaaa aa Aaaaaaa Aaaaa (0-000),Aaaaa aa Aaaaaaa: Aaaaaaa/ Aaaaaaaaaa Aaaaa (0-000),Aaaaaaa aaa Aaaaaaaaaaaaa Aaaaaaaaaa Aaaaaa (0/0),AAA aa Aaaaaaaa Aaa Aaaaa (a),Aaaaaaa aaa a Aaaaaaaaaa aa Aaaaaaa Aaaaa Aaaaaa (0/0),Aaaaa Aaaaaa Aaaaaaaaaa Aaaaa (0-000),Aaaaaaaaaa & Aaaaaaa Aaaaa (0-000),Aaaaaaaaaaaaa Aaaaaaaa Aaaaaaaaaa Aaaa (%)\n")
    

    image

    Unhandled exception at 0x0000000068D06146 (meltr.dll) in rsession.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF. image

    I've saved a copy of the minidump if it is useful but it is large enough that I don't have anywhere to post it image

    Both examples I've tested in 64bit 4.0.2 and 4.1.1 (as those are what I have to hand).

    Also, as a cross-check, I've tried readr with these are single lines and it seems to work ok

    readr::read_csv(",,,,,,,,,,,,A. 0. Aaaaa 0 AAA aaaaaaaaa,A. 0. Aaaaa 0 AAA aaaaaaaaa,A. 0. Aaaaa 0 AAA aaaaaaaaa,A. 0. Aaaaa 0 AAA aaaaaaaaa,A. 0. Aaaaa AAA aaaaaaaaa,A. 0. Aaaaaaaa aa aaaaaaaaa aaaaaa aa aaa aaaaaa aaaa aaaaaa,A. 0. Aaaaa aa aaa-aaaaaaaaa aaaaaa aaaaaaaaaaa aaa aaaaaaaaaa,A. 0. Aaaaa aa aaa-aaaaaaaaa aaaaaa aaaaaaaaaaa aaa aaaaaaaaaa,A. 0. Aaaaa aa aaa-aaaaaaaaa aaaaaa aaaaaaaaaaa aaa aaaaaaaaaa,A. 0. Aaaaa aa aaa-aaaaaaaaa aaaaaa aaaaaaaaaaa aaa aaaaaaaaaa,A. 0. Aaaaa aa aaa-aaaaaaaaa aaaaaa aaaaaaaaaaa aaa aaaaaaaaaa,A. 0. Aaaaaa aaaaaaaaaaa aaaaaaaaa aaa aaaa aaaaaa aaaaaaa aaaaaa,A. 0. Aaaaaaaaa aa aaaaa,A. 0. Aaaaaaaaa aa aaaaa,A. 0. Aaaaaaaaa aa aaaaa,A. 0. Aaaaaaaaa aa aaaaa,A. 00. Aaaaaaaaa aaaaa aaaaa,A. 00. Aaaaaaaaa aaaaa aaaaa,A. 00. Aaaaaaaaa aaaaa aaaaa,A. 00. Aaaaaaaaaa aaaaaa aaa aaa,A. 00. Aaaaa aaaaaa aaaaaaaaa,A. 00. Aaaaa aaaaaa aaaaaaaaa,A. 00. Aaaaaaaa aa aaaaaaaaaaaaa aaaaaaa,AA. 0. Aaaaaaaaa aa aaaaaaaaa aaaaaaaaaa,AA. 0. Aaaaaaaaa aa aaa aaaaaaaaaa,AA. 0. Aaaaaaaaa aa aaaaa aaaaaaaaa aaaaaaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0. Aaaaaa aaaaaaaaaaa aa aaaa aa aaa-aaaaaaaaa aaaaaaa aa aaaaaa,AA. 0.0. Aaaaa aaaaa aaa aaaaaaaaa,AA. 0. Aaaaaaaa aa aaaaa aa aaaa aaaaa aaaaaa,AA. 0. Aaaaaaaa aa aaaaa aa aaaa aaaaa aaaaaa,AA. 0. Aaaaaaaaaaa aa aaaaaaaaa aaaaaaaaa aaaaaaaaa,AA. 00. Aaaaaaaaaaa aa aaaaaaaaa aaaaaaa aaaaaaaaaaa aaaa/aaaaaaaaaaa aaaaaaaaa,AA. 00. Aaa-aaaaaaaa aaaaa aaaaa,AAA. 0. Aaaaaaaaaaa aa aaaaaaaaa aaaaaaa aaaaaaaaa aaaaaaaa aaaaaaaaaa aaaaaaaa,AAA. 0. Aaaa aa aaaaaaaaa,AAA. 0. Aaaa aa aaaaaaaaa,AAA. 0. Aaaaaa aa aaaa aaaa aa aaaaaaaa aaaaaaaaa aaaaaaaaaa aa aaaaaaa,AAA. 0. Aaaaaa aa aaaa aaaa aa aaaaaaaa aaaaaaaaa aaaaaaaaaa aa aaaaaaa,AAA. 0. Aaaa aa a aaaaaaaa aaaa aa aaaaaaa,AAA. 0. Aaaa aa aaaaaaaaa/aaaaaaaaaa aaaaaaaa aaaaaaaaa,AAA. 0. Aaaaaaaaaaaa aaaaaaaaaaaaa aaaaaaaaaa,AAA. 0. Aaaaaaaaa AAA aaa aaaaa,AAA. 0. Aaaa aa a aaaaa aaaaaa aaaaaa,AAA. 00. Aaaa aa aaa aaaaaaaaa,AAA. 00. Aaaa aa aaaa-aaaaaaaaaa aaa aaaa-aaaaaaa aaaaaaaa,\n", col_names = FALSE)
    #> Rows: 1 Columns: 68
    #> -- Column specification --------------------------------------------------------
    #> Delimiter: ","
    #> chr (55): X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, X...
    #> lgl (13): X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X68
    #> 
    #> i Use `spec()` to retrieve the full column specification for this data.
    #> i Specify the column types or set `show_col_types = FALSE` to quiet this message.
    #> # A tibble: 1 x 68
    #>   X1    X2    X3    X4    X5    X6    X7    X8    X9    X10   X11   X12   X13   
    #>   <lgl> <lgl> <lgl> <lgl> <lgl> <lgl> <lgl> <lgl> <lgl> <lgl> <lgl> <lgl> <chr> 
    #> 1 NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    A. 0.~
    #> # ... with 55 more variables: X14 <chr>, X15 <chr>, X16 <chr>, X17 <chr>,
    #> #   X18 <chr>, X19 <chr>, X20 <chr>, X21 <chr>, X22 <chr>, X23 <chr>,
    #> #   X24 <chr>, X25 <chr>, X26 <chr>, X27 <chr>, X28 <chr>, X29 <chr>,
    #> #   X30 <chr>, X31 <chr>, X32 <chr>, X33 <chr>, X34 <chr>, X35 <chr>,
    #> #   X36 <chr>, X37 <chr>, X38 <chr>, X39 <chr>, X40 <chr>, X41 <chr>,
    #> #   X42 <chr>, X43 <chr>, X44 <chr>, X45 <chr>, X46 <chr>, X47 <chr>,
    #> #   X48 <chr>, X49 <chr>, X50 <chr>, X51 <chr>, X52 <chr>, X53 <chr>, ...
    

    Created on 2021-10-11 by the reprex package (v2.0.1)

    Session info
    sessionInfo()
    #> R version 4.1.1 (2021-08-10)
    #> Platform: x86_64-w64-mingw32/x64 (64-bit)
    #> Running under: Windows 10 x64 (build 19042)
    #> 
    #> Matrix products: default
    #> 
    #> locale:
    #> [1] LC_COLLATE=English_United Kingdom.1252 
    #> [2] LC_CTYPE=English_United Kingdom.1252   
    #> [3] LC_MONETARY=English_United Kingdom.1252
    #> [4] LC_NUMERIC=C                           
    #> [5] LC_TIME=English_United Kingdom.1252    
    #> 
    #> attached base packages:
    #> [1] stats     graphics  grDevices utils     datasets  methods   base     
    #> 
    #> loaded via a namespace (and not attached):
    #>  [1] pillar_1.6.3      compiler_4.1.1    highr_0.9         R.methodsS3_1.8.1
    #>  [5] R.utils_2.11.0    tools_4.1.1       digest_0.6.28     bit_4.0.4        
    #>  [9] evaluate_0.14     lifecycle_1.0.1   tibble_3.1.5      R.cache_0.15.0   
    #> [13] pkgconfig_2.0.3   rlang_0.4.11      reprex_2.0.1      rstudioapi_0.13  
    #> [17] cli_3.0.1         parallel_4.1.1    yaml_2.2.1        xfun_0.26        
    #> [21] fastmap_1.1.0     withr_2.4.2       styler_1.6.2      stringr_1.4.0    
    #> [25] knitr_1.36        fs_1.5.0          vctrs_0.3.8       hms_1.1.1        
    #> [29] tidyselect_1.1.1  bit64_4.0.5       glue_1.4.2        R6_2.5.1         
    #> [33] fansi_0.5.0       vroom_1.5.5       rmarkdown_2.11    purrr_0.3.4      
    #> [37] readr_2.0.2       tzdb_0.1.2        magrittr_2.0.1    backports_1.2.1  
    #> [41] ellipsis_0.3.2    htmltools_0.5.2   utf8_1.2.2        stringi_1.7.5    
    #> [45] crayon_1.4.1      R.oo_1.24.0
    

    and

    readr::read_csv("AAAAA,Aaaaaaa,AAAA,AAA AA,AaaAaaaa,Aaaaaaaaa Aaaa,AAAA Aaaaaa Aaaa,AAAA Aaaaaaaa Aaaaa Aaaa,Aaaaaaa,Aaaaaaa (AAA aa),Aaaaaaaaaa Aaaa Aaa Aaaa,Aaaa aa Aaaaaaaaaa,Aaaaaa -Aaaaa 0  (aaaaaa AA0a),Aaaaaa -Aaaaa 0  (aaaaaa AA0a),Aaaaaa -Aaaaa 0 Aaaaaaaa (aaaaaa AA0a),Aaaaaa -Aaaaa 0 Aaaaaaaaaa (aaaaaa AA0a),Aaaaaa - Aaaaa 0+0 (aaaaaa AA0a),Aaaaaaa Aaaaaaa aaaa Aaaaaa Aaaaa (0/0),Aaaaaa - Aaaaaaaaaaa aaaa Aaa-Aaaaaaaaa Aaaaaaa (AAa),Aaaaaa - Aaaaaaaaaaa aaaa Aaaaaaaaa Aaaaaaa (AAa),Aaaaaa - Aaaaaaaaaa aaaa Aaa-aaaaaaaaa Aaaaaaa (AAa),Aaaaaa - Aaaaaaaaaa aaaa Aaaaaaaaa Aaaaaaa (AAa),Aaaaaa - Aaaaaaaaaa aaaa Aaaaa Aaaaaaa (AAa),Aaaaaaa aa Aaaaaaa aaaa Aaaa Aaaaaa Aaaaaaa Aaaaaaa (%),Aaaaaaaaa aaa Aaaaaaa Aaaaaaaaaa Aaaaaa Aaaaaaaa (aaaaaa),Aaaa Aaaaaaaaa aa Aaaaa Aaaaaa Aaaaaaaa (aaaaaa),Aaaaa Aaaaaaaaa aa Aaaaa Aaaaaa Aaaaaaaa (aaaaaa),Aaaaaaaaaa aaa Aaaaaaaaaaa (aaaaaa),Aaaaa -Aaaaaaa (aaaaaa),Aaaaa - Aaaaaaaaa Aaaa Aaaaaaa (aaaaaa),Aaaaa - Aaaaa Aaaaaaaaa  (aaaaaa),Aaaaaa Aaa Aaaaaaaaaa Aaaaa (0-000),Aaaa Aaaaa Aaaaaaa (#),Aaaaa aa Aaaaa (#),Aaaaaaa Aaaaaaaaaaa aa Aaaaaaaaaaa aa Aaaa aa Aaaaaaaaaaaaa Aaaaaaa (0/0),Aaaaa Aaaaaaaaa aa Aaaaaaaaa Aaaaaaaaaa (aaaaaa),Aaaaa Aaaaaaaaa aa Aaa Aaaaaaaaaa (aaaaaa),Aaaaa Aaaaaaaaa Aaaaaaaaaa Aaaaaa Aaaaaaaa (aaaaaa),Aaaaaa - Aaaaaaaaaaa aaaa Aaaaaa (AAa),Aaaaaa - Aaaaaaaaaaa aaaa Aaaaaa (AAa),Aaaaaa - Aaaaaaaaaaa aaaa AAA (AAa),Aaaaaa - Aaaaaaaaaaa aaaa Aaaa Aaa (AAa),Aaaaaa - Aaaaaaaaaaa aaaa Aaaaaaa Aaa (AAa),Aaaaaa - Aaaaaaaaaaa aaaa Aaaa (AAa),Aaaaaa - Aaaaaaaaaaa aaaa AAA Aaaaa aaaa Aaa (Aaaaaaaaaa Aaaaaa) (AAa),Aaaaaa - Aaaaaaaaaaa aaaa AAA Aaaaa aaaa Aaa (Aaaaaaaaaa aaaaaa) (AAa),Aaaaaa - Aaaaaaaaaaa aaaa Aaa Aaaaaaaa (AAa),Aaaaaa - Aaaaaaaaaaa aaaa Aaaaaaaaa Aaaaaaa Aaa (AAA) (AAa),Aaaaaa - Aaaaaaaaaaa aaaa Aaaaaaa Aaaaaa Aaaa Aaa (AAa),Aaaaa -Aaaaaa+Aaaaaaaaa (aaaaa aaaaaa),Aaaaaaa Aaaaa Aaaaaa Aaaaa - Aaaaa a Aaaaaaaa 0000 Aaaaaaaa (0-000),Aaaaaaa aaaa Aaaaaa aa Aaaa Aaaaa Aaaaaa Aaaaa - Aaaaa a Aaaaaaaa 0000 aaaaaaaa (0/0),Aaaaaaa  Aaaaaaa aaaa  Aaaaaaaa Aaaaaaaaaa (0/0),Aaaaaaaaaaa Aaaaaaaaaaaa Aaaaaaaaa Aaaaa (0-000),Aaaaa - Aaa-aaaaaaaa (aaaaaa),AAA Aaaaaaaaaa Aaaaaaaaa Aaaaa (0-000),Aaaaa Aaaaaaaaaa Aaaaaa Aaaaaaaaa Aaaa (AAAAA) - Aaaaaaaaa Aaaaa (0-000),Aaaaa Aaaaaaaaaa Aaaaaa Aaaaaaaaa Aaaa (AAAAA) - Aaaaaaaaaaa Aaaaa (0-000),Aaaa-Aaaa Aaaaaa Aaaaaaaaa Aaaa (AAAAA) - Aaaaaaaaa Aaaaa (0-000),Aaaa-Aaaa Aaaaaa Aaaaaaaaa Aaaa (AAAAA) - Aaaaaaaaaaa Aaaaa (0-000),Aaaaaaaa Aaaa aa Aaaaaaa Aaaaa (0-000),Aaaaa aa Aaaaaaa: Aaaaaaa/ Aaaaaaaaaa Aaaaa (0-000),Aaaaaaa aaa Aaaaaaaaaaaaa Aaaaaaaaaa Aaaaaa (0/0),AAA aa Aaaaaaaa Aaa Aaaaa (a),Aaaaaaa aaa a Aaaaaaaaaa aa Aaaaaaa Aaaaa Aaaaaa (0/0),Aaaaa Aaaaaa Aaaaaaaaaa Aaaaa (0-000),Aaaaaaaaaa & Aaaaaaa Aaaaa (0-000),Aaaaaaaaaaaaa Aaaaaaaa Aaaaaaaaaa Aaaa (%)\n", col_names = FALSE)
    #> Rows: 1 Columns: 68
    #> -- Column specification --------------------------------------------------------
    #> Delimiter: ","
    #> chr (68): X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, ...
    #> 
    #> i Use `spec()` to retrieve the full column specification for this data.
    #> i Specify the column types or set `show_col_types = FALSE` to quiet this message.
    #> # A tibble: 1 x 68
    #>   X1    X2     X3    X4    X5    X6    X7    X8    X9    X10   X11   X12   X13  
    #>   <chr> <chr>  <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
    #> 1 AAAAA Aaaaa~ AAAA  AAA ~ AaaA~ Aaaa~ AAAA~ AAAA~ Aaaa~ Aaaa~ Aaaa~ Aaaa~ Aaaa~
    #> # ... with 55 more variables: X14 <chr>, X15 <chr>, X16 <chr>, X17 <chr>,
    #> #   X18 <chr>, X19 <chr>, X20 <chr>, X21 <chr>, X22 <chr>, X23 <chr>,
    #> #   X24 <chr>, X25 <chr>, X26 <chr>, X27 <chr>, X28 <chr>, X29 <chr>,
    #> #   X30 <chr>, X31 <chr>, X32 <chr>, X33 <chr>, X34 <chr>, X35 <chr>,
    #> #   X36 <chr>, X37 <chr>, X38 <chr>, X39 <chr>, X40 <chr>, X41 <chr>,
    #> #   X42 <chr>, X43 <chr>, X44 <chr>, X45 <chr>, X46 <chr>, X47 <chr>,
    #> #   X48 <chr>, X49 <chr>, X50 <chr>, X51 <chr>, X52 <chr>, X53 <chr>, ...
    

    Created on 2021-10-11 by the reprex package (v2.0.1)

    Session info
    sessionInfo()
    #> R version 4.1.1 (2021-08-10)
    #> Platform: x86_64-w64-mingw32/x64 (64-bit)
    #> Running under: Windows 10 x64 (build 19042)
    #> 
    #> Matrix products: default
    #> 
    #> locale:
    #> [1] LC_COLLATE=English_United Kingdom.1252 
    #> [2] LC_CTYPE=English_United Kingdom.1252   
    #> [3] LC_MONETARY=English_United Kingdom.1252
    #> [4] LC_NUMERIC=C                           
    #> [5] LC_TIME=English_United Kingdom.1252    
    #> 
    #> attached base packages:
    #> [1] stats     graphics  grDevices utils     datasets  methods   base     
    #> 
    #> loaded via a namespace (and not attached):
    #>  [1] pillar_1.6.3      compiler_4.1.1    highr_0.9         R.methodsS3_1.8.1
    #>  [5] R.utils_2.11.0    tools_4.1.1       digest_0.6.28     bit_4.0.4        
    #>  [9] evaluate_0.14     lifecycle_1.0.1   tibble_3.1.5      R.cache_0.15.0   
    #> [13] pkgconfig_2.0.3   rlang_0.4.11      reprex_2.0.1      rstudioapi_0.13  
    #> [17] cli_3.0.1         parallel_4.1.1    yaml_2.2.1        xfun_0.26        
    #> [21] fastmap_1.1.0     withr_2.4.2       styler_1.6.2      stringr_1.4.0    
    #> [25] knitr_1.36        fs_1.5.0          vctrs_0.3.8       hms_1.1.1        
    #> [29] tidyselect_1.1.1  bit64_4.0.5       glue_1.4.2        R6_2.5.1         
    #> [33] fansi_0.5.0       vroom_1.5.5       rmarkdown_2.11    purrr_0.3.4      
    #> [37] readr_2.0.2       tzdb_0.1.2        magrittr_2.0.1    backports_1.2.1  
    #> [41] ellipsis_0.3.2    htmltools_0.5.2   utf8_1.2.2        stringi_1.7.5    
    #> [45] crayon_1.4.1      R.oo_1.24.0
    

    If there is anything more I can do to help let me know.

    Thanks for taking the time to read this, much appreciated.

    opened by king2bob 1
  • Move `master` branch to `main`

    Move `master` branch to `main`

    The master branch of this repository will soon be renamed to main, as part of a coordinated change across several GitHub organizations (including, but not limited to: tidyverse, r-lib, tidymodels, and sol-eng). We anticipate this will happen by the end of September 2021.

    That will be preceded by a release of the usethis package, which will gain some functionality around detecting and adapting to a renamed default branch. There will also be a blog post at the time of this master --> main change.

    The purpose of this issue is to:

    • Help us firm up the list of targetted repositories
    • Make sure all maintainers are aware of what's coming
    • Give us an issue to close when the job is done
    • Give us a place to put advice for collaborators re: how to adapt

    message id: euphoric_snowdog

    opened by jennybc 1
  • Remove unused code

    Remove unused code

    We ported likely more code from readr than we actually need.

    We should likely get rid of at least some of this to make future maintenance more straightforward.

    opened by jimhester 1
  • Resolve maintainership

    Resolve maintainership

    Who is going to be the maintainer of this package?

    Leading candidates are

    1. Duncan Garmonsway (@nacnudus) - who contributed the melt code to readr upon which this is based.
    2. Jim Hester (@jimhester) - who maintains readr.
    help wanted :heart: 
    opened by jimhester 0
  • Include more relevant datasets in the examples

    Include more relevant datasets in the examples

    Most of the examples are using the readr rectangular datasets.

    It would probably make more sense to use ragged datasets with different types of columns.

    opened by jimhester 1
Releases(v1.0.1)
  • v1.0.1(Sep 10, 2022)

  • v1.0.0(Aug 24, 2021)

    Initial release as the meltr package. The code was previously in https://github.com/tidyverse/readr/, where it was deprecated in version 2.0.0.

    Source code(tar.gz)
    Source code(zip)
Libelf is a simple library to read ELF files

libelf Libelf is a simple library which provides functions to read ELF files. Headers #include <stdint.h> #include <elf.h> Structures typedef struct

David du Colombier 44 Aug 7, 2022
Sqrt OS is a simulation of an OS scheduler and memory manager using different scheduling algorithms including Highest Priority First (non-preemptive), Shortest Remaining Time Next, and Round Robin.

A CPU scheduler determines an order for the execution of its scheduled processes; it decides which process will run according to a certain data structure that keeps track of the processes in the system and their status. A process, upon creation, has one of the three states: Running, Ready, Blocked (doing I/O, using other resources than CPU or waiting on unavailable resource).

Abdallah Hemdan 18 Apr 15, 2022
A non-linear trajectory optimization library developed by Optimus Ride, Inc

A non-linear trajectory optimization library developed by Optimus Ride, Inc. This library implements a C++ version of the original open-source ALTRO solver developed by the Robotic Exploration Lab at Stanford and Carnegie Mellon Universities, also available open-source as an official Julia package.

Optimus Ride 58 Dec 27, 2022
A universal type for non-type template parameters for C++20 or later.

uninttp A universal type for non-type template parameters for C++20 or later. Installation: uninttp (Universal Non-Type Template Parameters) is a head

null 16 Dec 24, 2021
Extension to Keyboard.h to allow non-US keyboards and Unicode characters

KeyboardUTF8 This Arduino library adds a mapping layer on top of the Keyboard library (for Leonardo/Micro/Due) to allow non-US keyboards and 'typing'

John Wasser 6 Sep 4, 2022
LoL-Reader is a tool to read game-state.

LoL-Reader LoL-Reader is a tool to read real-time League of Legends statistics from memory. Installation - Compile g++ *.cpp -L. -lPsapi -w -o progra

Kaan Caglan 2 Dec 28, 2021
An easy-to-use C library for displaying text progress bars.

What is this thing? progressbar is a C-class (it's a convention, dammit) for displaying attractive progress bars on the command line. It's heavily inf

Trevor Fountain 440 Dec 27, 2022
Library for writing text-based user interfaces

IMPORTANT This library is no longer maintained. It's pretty small if you have a big project that relies on it, just maintain it yourself. Or look for

null 1.9k Dec 22, 2022
The libxo library allows an application to generate text, XML, JSON, and HTML output using a common set of function calls. The application decides at run time which output style should be produced.

libxo libxo - A Library for Generating Text, XML, JSON, and HTML Output The libxo library allows an application to generate text, XML, JSON, and HTML

Juniper Networks 253 Dec 10, 2022
Mustache text templates for modern C++

About Mustache implementation for modern C++ (requires C++11) Header only Zero dependencies Templated string type for compatibility with any STL-like

Kevin Wojniak 307 Dec 11, 2022
Rich text library supporting customizable Markdown formatting

Rich text library supporting customizable Markdown formatting

Brace Yourself Games 95 Dec 30, 2022
A library to automatically generate a text based interface for programs and libraries.

Introduction Auto Menu is an open-source library to automatically generate a text based interface for your programs and libraries. Installation Clone

Soumya Ranjan Patnaik 7 Oct 31, 2021
A c++ file just to show how can we change color of Background and Text in C++...

A c++ file just to show how can we change color of Background and Text in C++...

null 1 Nov 2, 2021
This data is a sample data created for a Qiita article and a YouTube commentary.

NiagaraSample UE4 4.27.1 English This data is a sample data created for a Qiita article and a YouTube commentary. Here is some sample data that may be

O.Y.G 10 Jun 15, 2022
A C library for parsing/normalizing street addresses around the world. Powered by statistical NLP and open geo data.

libpostal: international street address NLP libpostal is a C library for parsing/normalizing street addresses around the world using statistical NLP a

openvenues 3.6k Dec 27, 2022
Open Data Description Language

Open Data Description Language This is the reference parser for the Open Data Description Language (OpenDDL), version 3.0. The official language speci

Eric Lengyel 40 Dec 27, 2022
Example of transferring file data over BLE using an Arduino Nano Sense and WebBLE

BLE File Transfer Example of transferring file data over BLE to an Arduino Nano Sense using WebBLE. Overview This is an example of how to use Bluetoot

Pete Warden 33 Dec 19, 2022
Integrate PhysFS with raylib, allowing to load images, audio and fonts from data archives.

raylib-physfs Integrate the virtual file system PhysicsFS with raylib, allowing to load images, audio, and fonts from data archives. Features Load the

Rob Loach 21 Dec 3, 2022
BlowBeef is a tool for analyzing WMI data.

Blowbeef BlowBeef is a tool for analyzing WMI data. Usage BlowBeef is a tool for analyzing WMI data.

倾旋 18 Sep 2, 2022