Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various enhancements to print.data.table #1523

Open
11 of 14 tasks
MichaelChirico opened this issue Feb 6, 2016 · 69 comments
Open
11 of 14 tasks

Various enhancements to print.data.table #1523

MichaelChirico opened this issue Feb 6, 2016 · 69 comments

Comments

@MichaelChirico
Copy link
Member

@MichaelChirico MichaelChirico commented Feb 6, 2016

Current task list:

  • 1. Add .Rd file for print.data.table
  • 2. Ability to turn off row numbers [1) from #645/R-F#1957 - Yike Lu; handled in this commit, Nov. 12, 2013]
  • 3. Ability to turn off smart table wrapping [2) from #645/R-F#1957 - Yike Lu]
  • 4. Ability to force-print all entries [3) from #645/R-F#1957 - Yike Lu; handled in this commit, Sep. 14, 2012]
  • 5. Ability to demarcate by-groupings [4) from #645/R-F#1957 - Yike Lu]
  • 6. Demarcation of table border [part of 5) from #645/R-F#1957 - Yike Lu]
  • 7. Demarcation of key columns [part of 5) from #645/R-F#1957 - Yike Lu]
  • 8. Fungible option for whether row numbers are printed [#1097 - @smcinerney]
  • 9. Options for whether/which registers of column names to print [#1482 - Oleg Bondar on SO]
  • 10. Option for dplyr-like printing [see below - @MichaelChirico]
  • 11. Facilities for compact glance at data a la dplyr tbl_df [#1497 - @nverno; #2608 - @vlulla]
  • 12. Option for specifying a truncation character [#1374 - @jangorecki]
  • 13. Handling of empty-named data.table [#545/R-F#5253 - @arunsrinivasan]
  • 14. Improve printing of list/non-atomic columns [see below - @franknarf1 via SO; also #605; handled in #2562]
  • 15. POSIXct columns with timezones should include that information in printed output [#2842 - @MichaelChirico]
  • 16. Limit number of columns printed for very wide tables (i.e. where print.data.table would exceed max.print)

Some Notes

3 (tabled pending clarification)

As I understand it, this issue is a request to prevent the console output from wrapping around (i.e., to force all columns to appear parallel, regardless of how wide the table is).

If that's the case, this is (AFAICT) impossible, since that's something done by RStudio/R itself. I for one certainly don't know of any way to alter this behavior.

If someone does know of a way to affect this, or if they think I'm mis-interpreting, please pipe up and we can have this taken care of.

7

As I see it there are two options here. One is to treat all key columns the same; the other is to treat secondary, tertiary, etc. keys separately.

Example output:

set.seed(01394)
DT <- data.table(key1 = rep(c("A","B"), each = 4),
                 key2 = rep(c("a","b"), 4),
                 V1 = nrorm(8), key = c("key1","key2"))

# Only demarcate key columns
DT
#    | key1 | | key2 |         V1
#1: |    A | |    a |  0.5994579
#2: |    A | |    a | -1.0898775
#3: |    A | |    b | -0.2285326
#4: |    A | |    b | -1.7858472
#5: |    B | |    a | -0.6269875
#6: |    B | |    a | -0.6633084
#7: |    B | |    b |  1.0367084
#8: |    B | |    b |  0.7364276

# Separately "emboss" keys based on key order
DT
#    | key1 | || key2 ||         V1
#1: |    A | ||    a ||  0.5994579
#2: |    A | ||    a || -1.0898775
#3: |    A | ||    b || -0.2285326
#4: |    A | ||    b || -1.7858472
#5: |    B | ||    a || -0.6269875
#6: |    B | ||    a || -0.6633084
#7: |    B | ||    b ||  1.0367084
#8: |    B | ||    b ||  0.7364276

And of course, add an option for deciding whether to demarcate with | or some other user's-choice character (*, +, etc.)

9 [DONE]

Some feedback from a closed PR that was a first stab at solving this:

From Arun regarding preferred options:

col.names = c("auto", "top", "none")

"auto": current behaviour

"top": only on top, data.frame-like

"none": no column names -- exclude rows in which column names would have been printed.

10 [DONE]

It would be nice to have an option to print a row under the row of column names which gives each column's stored type, as is currently (I understand) the default for the output of dplyr operations.

Example from dplyr:

library(dplyr)
DF <- data.frame(n = numeric(1), c1 = complex(1), i = integer(1),
                 f = factor(1), D = as.Date("2016-02-06"), c2 = character(1),
                 stringsAsFactors = FALSE)
tbl_df(DF)
# Source: local data frame [1 x 6]
#
#       n     c1     i      f          D    c2
#   (dbl) (cmpl) (int) (fctr)     (date) (chr) # <- this row
#1     0   0+0i     0      1 2016-02-06      

Current best alternative is to do sapply(DF, class), but it's nice to have a preview of the data wit this extra information.

11

This seems closely related to 3. Current plan is to implement this as an alternative to 3 since it seems more tangible/doable.

Via @nverno:

Would it be useful for head.data.table to have an option to print only the head of columns that fit the screen width, and summarise the rest? I was imagining something like the printed output from the head of a tbl_df in dplyr. I think it is nice for tables with many columns.

and the guiding example from Arun:

require(data.table)
dt = setDT(lapply(1:100, function(x) 1:3))
dt
dplyr::tbl_dt(dt)

12

Currently covered by @jangorecki's PR #1448; Jan, assuming #1529 is merged first, could you edit the print.data.table man page for your PR?

@MichaelChirico MichaelChirico changed the title FR: option for dplyr-like data.table printing Various enhancements to print.data.table Feb 8, 2016
@arunsrinivasan
Copy link
Member

@arunsrinivasan arunsrinivasan commented Feb 8, 2016

Just brilliant!

@arunsrinivasan
Copy link
Member

@arunsrinivasan arunsrinivasan commented Feb 8, 2016

No idea about 3 and 5 (as to what they mean).
I think a PR for 6 would be nice (seems straightforward from what Jan wrote there). Perhaps ?print.data.table is the time consuming part? Do you think you'd be up for this, @MichaelChirico ?
No idea as to what 7 means either..
8 is another great idea. PR would be great!

@arunsrinivasan
Copy link
Member

@arunsrinivasan arunsrinivasan commented Feb 8, 2016

It'd be really nice if Github would allow assigning tasks to project who aren't necessarily members :-(.

@arunsrinivasan
Copy link
Member

@arunsrinivasan arunsrinivasan commented Feb 8, 2016

There's also #1497

@MichaelChirico
Copy link
Member Author

@MichaelChirico MichaelChirico commented Feb 9, 2016

@arunsrinivasan should I try and PR this one issue at a time? Or in a fell swoop? I've got 8 basically taken care of, just need to add tests.

@arunsrinivasan
Copy link
Member

@arunsrinivasan arunsrinivasan commented Feb 9, 2016

Michael, separate PRs.

@nverno
Copy link

@nverno nverno commented Feb 10, 2016

Very nice! Sorry to get back to you late on this, but Arun provided a nice example. It is just a nice convenience when interactively looking at tables with lots columns so your console isn't engulfed by a huge data dump when you take a look at the head. Ill close that other one.

arunsrinivasan added a commit that referenced this issue Mar 4, 2016
#1523 progress: adds option for dplyr-inspired column class summary with printing
arunsrinivasan added a commit that referenced this issue Mar 6, 2016
Closes #1097 (progress towards #1523), creates option for printing row names
@arunsrinivasan
Copy link
Member

@arunsrinivasan arunsrinivasan commented Mar 9, 2016

It'd be also nice to print:

primary key:
secondary indices: , etc..
<data.table>

by default. It's definitely informative to know what the keys and secondary indices are..

@arunsrinivasan
Copy link
Member

@arunsrinivasan arunsrinivasan commented Mar 9, 2016

Also, I think this is better output for:

print(DT, class=TRUE)
   <char> <int> <num>
     site  date     x
1:      A     1    10
2:      A     2    20
3:      A     3    30
4:      B     1    10
5:      B     2    20
6:      B     3    30

It's easier to copy/paste the data.table without the classes in the way. If we can do that, we can turn on printing classes by default.

Thoughts?

@MichaelChirico
Copy link
Member Author

@MichaelChirico MichaelChirico commented Mar 9, 2016

@arunsrinivasan about printing keys:

  • Isn't that the point of tables()? (though TBH I almost never use this function) BTW tables, to the extent that it's useful, could go for an update to add a secondary_indices column...
  • You don't consider this subsumed by point # 7 here? See this chat (interrupted in the middle) b/w Frank and I about possibilities for filling # 7. Or perhaps you'd like to replace point # 7 with your idea. What do you think?

About class:

This can be done, but will require a step of wrangling -- basically toprint <- rbind(rownames(toprint), toprint); rownames(toprint) <- abbs. Which is fine, I'm just curious why you're thinking of easier copy-pasting as a clear advantage? Not sure the cost of including class info in copy-pasted output. Happy to hear feedback.

@arunsrinivasan
Copy link
Member

@arunsrinivasan arunsrinivasan commented Mar 9, 2016

About class: -- copy pasting from SO, for example to provide input to fread(). I also find it easier without the separation between column name and value (just used to seeing it).

On printing keys:

  • Yes, but it gives it for all tables, which is useful in itself. But if I'd like to see just the keys retained after a join operation, I don't necessarily want to have a look at all the tables' key.
  • I don't think point 7 (drawing lines) would work well.. since it can not (AFAICT) tell the order of key columns.. But stating:

primary key: <a, b>

clearly tells the first key column is "a", then "b"..

Does this clarify things a bit?

@arunsrinivasan
Copy link
Member

@arunsrinivasan arunsrinivasan commented Mar 9, 2016

I agree tables() could use an update.

@MichaelChirico
Copy link
Member Author

@MichaelChirico MichaelChirico commented Mar 9, 2016

@arunsrinivasan OK, I think I can get on board with that. Can ditch point # 7 then. I agree distinguishing key order at a glance was going to be tough. So how about:

  • If a table has a key, say c("key1", "key2"), print the following above the output of print.data.table:

    keys: key1, key2
    
  • If there is no key, print:

    keys: <unkeyed>
    
  • Secondary index printing is optional, but if activated will come below keys a la:

    Secondary indices: key2.1, key2.2, ...
                       key3.1, key3.2, ...
    

Lastly, I propose sending this output through message to help distinguish it from the data.table itself visually.

@arunsrinivasan
Copy link
Member

@arunsrinivasan arunsrinivasan commented Mar 9, 2016

My suggestion would be this:

  1. If either of these attributes are not present, don't print them. I think people will quickly learn that no keys are set (if it isn't displayed).
  2. Since there can be more than 1 secondary index, I suggest the format be:

Keys: <col1, col2> (only one)
Secondary Indices: , , <col1, col2>, ...
If there are more than 'x' (=5 to begin with?) indices, use a "...". They can always access it using key2().

I don't mind "<>" being replaced with "" if that'd be more aesthetically pleasing.. e.g., "col1,col2", "col1" etc..

Last proposal: seems nice, but I wonder if it might create issues wth knitr when people suppress 'messages' in chunk.. and print the output?

@arunsrinivasan
Copy link
Member

@arunsrinivasan arunsrinivasan commented Mar 9, 2016

It'd be great to have this and class=TRUE default for v1.9.8 already.. we'll see.

@arunsrinivasan
Copy link
Member

@arunsrinivasan arunsrinivasan commented Mar 9, 2016

One other thought:

Many people use "numeric" type when an integer type would suffice, and when "integer64" would fit the bill better. How about marking those columns somehow while printing?

instead of , perhaps >num< ?? that'll allow people to be aware of such optimisations as well..

@arunsrinivasan
Copy link
Member

@arunsrinivasan arunsrinivasan commented Mar 9, 2016

OR "!num!"? There's a function isReallyReal that checks this. But this'll perhaps be too time consuming to run on all rows every time..

@MichaelChirico
Copy link
Member Author

@MichaelChirico MichaelChirico commented Mar 9, 2016

@arunsrinivasan Hmm I think it's definitely not something to be used as a part of print.data.table default.

Some initial musings:

  • Could add an option to do so, and a companion function (check_num_cols or the like) which runs this on an input table and spits out the candidate columns.
  • Could do this the first time only -- have some sort of global variable associated with each data.table in memory which we use to trigger the evaluation
  • Could have this as part of the standard (or verbose) output of fread (since I imagine that's where most data.tables are created in general. I guess setDT is the other big source.

Are you thinking of pushing 1.9.8 soon?

Oh, one more thing, what do you think about porting print.data.table to its own .R file?

@arunsrinivasan
Copy link
Member

@arunsrinivasan arunsrinivasan commented Mar 9, 2016

Hm, yes, let's forget the marking of columns for now.

On pushing 1.9.8: trying as much as possible to wrap the other issues marked as quick as possible. I'd like to work on non-equi joins for this release.

On print.data.table to separate file, sure, sounds good.

@MichaelChirico
Copy link
Member Author

@MichaelChirico MichaelChirico commented Mar 10, 2016

@arunsrinivasan just a heads up that setting class = TRUE as the default is causing 100s of errors in the tests

@arunsrinivasan
Copy link
Member

@arunsrinivasan arunsrinivasan commented Mar 10, 2016

Okay thanks, will take a look.

@mattdowle mattdowle removed this from the 1.12.4 milestone Sep 19, 2019
@mattdowle mattdowle added this to the 1.13.0 milestone Sep 19, 2019
@mattdowle mattdowle removed this from the 1.12.7 milestone Dec 8, 2019
@mattdowle mattdowle added this to the 1.12.9 milestone Dec 8, 2019
@tdhock
Copy link
Member

@tdhock tdhock commented Feb 27, 2020

hi all I don't know if you care but I noticed a bug in print.data.table(col.names="none") when there are lots of columns. minimal code is:

library(data.table)
x <- 1:30
DT <- data.table(t(x))
print(DT, col.names="none")

output on my system is:

th798@cmp2986 MINGW64 ~/R
$ R --vanilla < datatable-print-bug.R

R version 3.6.1 (2019-07-05) -- "Action of the Toes"
Copyright (C) 2019 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(data.table)
> x <- 1:30
> DT <- data.table(t(x))
> print(DT, col.names="none")
1:  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21
   V22 V23 V24 V25 V26 V27 V28 V29 V30
1:  22  23  24  25  26  27  28  29  30
> 
�]0;MINGW64:/c/Users/th798/R�
th798@cmp2986 MINGW64 ~/R
$ 

You can see in the output above that the column names V22 through V30 are printed, but I expected they should not be. What I expected:

> print(DT, col.names="none")
1:  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21
1:  22  23  24  25  26  27  28  29  30
> 

@avimallu
Copy link
Contributor

@avimallu avimallu commented Dec 29, 2020

Is there any scope to add a dplyr::glimpse equivalent (I don't see it in the list)? While I most certainly can use dplyr for this purpose, I will need to install a bunch of dependencies to get the function. A use case is highlighted below (note: downloads ~4MB to system).

download.file(
  "https://download.cms.gov/nppes/NPPES_Data_Dissemination_120720_121320_Weekly.zip",
  "file.zip")

data <- fread("unzip -cq file.zip npidata_pfile_20201207-20201213.csv")

data.table's default print method gives a very long output that is not really helpful in understanding the contents of the file.

View output

> data
              NPI Entity Type Code Replacement NPI Employer Identification Number (EIN)
    1: 1134691124                2              NA                            <UNAVAIL>
    2: 1124623970                2              NA                            <UNAVAIL>
    3: 1154927192                2              NA                            <UNAVAIL>
       Provider Organization Name (Legal Business Name) Provider Last Name (Legal Name) Provider First Name Provider Middle Name
    1:                        SOCAL BEHAVIORAL MEDICINE                                                                         
    2:       FULL OF GREATS TRANSPORT LLC FOG TRANSPORT                                                                         
    3:         4000 MOUNT ELENA CIRCLE CORONA, CA 92882                                                                         
       Provider Name Prefix Text Provider Name Suffix Text Provider Credential Text Provider Other Organization Name
    1:                                                                                     SOCAL BEHAVIORAL MEDICINE
    2:                                                                                                              
    3:                                                                                                              
       Provider Other Organization Name Type Code Provider Other Last Name Provider Other First Name Provider Other Middle Name
    1:                                          3                                                                              
    2:                                         NA                                                                              
    3:                                         NA                                                                              
       Provider Other Name Prefix Text Provider Other Name Suffix Text Provider Other Credential Text
    1:                                                                                               
    2:                                                                                               
    3:                                                                                               
       Provider Other Last Name Type Code Provider First Line Business Mailing Address
    1:                                 NA                     10650 REAGAN ST UNIT 824
    2:                                 NA                         6609 W BROOKHART WAY
    3:                                 NA                         4000 MOUNT ELENA CIR
       Provider Second Line Business Mailing Address Provider Business Mailing Address City Name
    1:                                                                              LOS ALAMITOS
    2:                                                                                   PHOENIX
    3:                                                                                    CORONA
       Provider Business Mailing Address State Name Provider Business Mailing Address Postal Code
    1:                                           CA                                     907208844
    2:                                           AZ                                     850837403
    3:                                           CA                                     928827916
       Provider Business Mailing Address Country Code (If outside U.S.) Provider Business Mailing Address Telephone Number
    1:                                                               US                                                   
    2:                                                               US                                         5053079984
    3:                                                               US                                         6269935823
       Provider Business Mailing Address Fax Number Provider First Line Business Practice Location Address
    1:                                         <NA>                        234 S PACIFIC COAST HWY STE 202
    2:                                   4807187714                                   6609 W BROOKHART WAY
    3:                                         <NA>                                   4000 MOUNT ELENA CIR
       Provider Second Line Business Practice Location Address Provider Business Practice Location Address City Name
    1:                                                                                                 REDONDO BEACH
    2:                                                                                                       PHOENIX
    3:                                                                                                        CORONA
       Provider Business Practice Location Address State Name Provider Business Practice Location Address Postal Code
    1:                                                     CA                                               902777001
    2:                                                     AZ                                               850837403
    3:                                                     CA                                               928827916
       Provider Business Practice Location Address Country Code (If outside U.S.)
    1:                                                                         US
    2:                                                                         US
    3:                                                                         US
       Provider Business Practice Location Address Telephone Number Provider Business Practice Location Address Fax Number
    1:                                                   3106985252                                                   <NA>
    2:                                                   5053079984                                             4807187714
    3:                                                   6269935823                                                   <NA>
       Provider Enumeration Date Last Update Date NPI Deactivation Reason Code NPI Deactivation Date NPI Reactivation Date
    1:                01/01/2019       12/07/2020                           NA                                            
    2:                12/01/2020       12/07/2020                           NA                                            
    3:                12/07/2020       12/07/2020                           NA                                            
       Provider Gender Code Authorized Official Last Name Authorized Official First Name Authorized Official Middle Name
    1:                                              HULST                         GINGER                                
    2:                                               HURT                        TYRREIA                               S
    3:                                            YOUSSEF                          ALICE                               K
       Authorized Official Title or Position Authorized Official Telephone Number Healthcare Provider Taxonomy Code_1
    1:                              CO-OWNER                           3106985252                          363LF0000X
    2:                                MEMBER                           5053079984                          343900000X
    3:                                 OWNER                           6269935823                          172V00000X
       Provider License Number_1 Provider License Number State Code_1 Healthcare Provider Primary Taxonomy Switch_1
    1:                                                                                                            N
    2:                                                                                                            Y
    3:                                                                                                            Y
       Healthcare Provider Taxonomy Code_2 Provider License Number_2 Provider License Number State Code_2
    1:                          207RA0401X                                                               
    2:                                                                                                   
    3:                                                                                                   
       Healthcare Provider Primary Taxonomy Switch_2 Healthcare Provider Taxonomy Code_3 Provider License Number_3
    1:                                             Y                                                              
    2:                                                                                                            
    3:                                                                                                            
       Provider License Number State Code_3 Healthcare Provider Primary Taxonomy Switch_3 Healthcare Provider Taxonomy Code_4
    1:                                                                                                                       
    2:                                                                                                                       
    3:                                                                                                                       
       Provider License Number_4 Provider License Number State Code_4 Healthcare Provider Primary Taxonomy Switch_4
    1:                                                                                                             
    2:                                                                                                             
    3:                                                                                                             
       Healthcare Provider Taxonomy Code_5 Provider License Number_5 Provider License Number State Code_5
    1:                                                                                                   
    2:                                                                                                   
    3:                                                                                                   
       Healthcare Provider Primary Taxonomy Switch_5 Healthcare Provider Taxonomy Code_6 Provider License Number_6
    1:                                                                                                            
    2:                                                                                                            
    3:                                                                                                            
       Provider License Number State Code_6 Healthcare Provider Primary Taxonomy Switch_6 Healthcare Provider Taxonomy Code_7
    1:                                                                                                                       
    2:                                                                                                                       
    3:                                                                                                                       
       Provider License Number_7 Provider License Number State Code_7 Healthcare Provider Primary Taxonomy Switch_7
    1:                                                                                                             
    2:                                                                                                             
    3:                                                                                                             
       Healthcare Provider Taxonomy Code_8 Provider License Number_8 Provider License Number State Code_8
    1:                                                                                                   
    2:                                                                                                   
    3:                                                                                                   
       Healthcare Provider Primary Taxonomy Switch_8 Healthcare Provider Taxonomy Code_9 Provider License Number_9
    1:                                                                                                            
    2:                                                                                                            
    3:                                                                                                            
       Provider License Number State Code_9 Healthcare Provider Primary Taxonomy Switch_9 Healthcare Provider Taxonomy Code_10
    1:                                                                                                                        
    2:                                                                                                                        
    3:                                                                                                                        
       Provider License Number_10 Provider License Number State Code_10 Healthcare Provider Primary Taxonomy Switch_10
    1:                                                                                                                
    2:                                                                                                                
    3:                                                                                                                
       Healthcare Provider Taxonomy Code_11 Provider License Number_11 Provider License Number State Code_11
    1:                                                                                                      
    2:                                                                                                      
    3:                                                                                                      
       Healthcare Provider Primary Taxonomy Switch_11 Healthcare Provider Taxonomy Code_12 Provider License Number_12
    1:                                                                                                               
    2:                                                                                                               
    3:                                                                                                               
       Provider License Number State Code_12 Healthcare Provider Primary Taxonomy Switch_12 Healthcare Provider Taxonomy Code_13
    1:                                                                                                                          
    2:                                                                                                                          
    3:                                                                                                                          
       Provider License Number_13 Provider License Number State Code_13 Healthcare Provider Primary Taxonomy Switch_13
    1:                                                                                                                
    2:                                                                                                                
    3:                                                                                                                
       Healthcare Provider Taxonomy Code_14 Provider License Number_14 Provider License Number State Code_14
    1:                                                                                                      
    2:                                                                                                      
    3:                                                                                                      
       Healthcare Provider Primary Taxonomy Switch_14 Healthcare Provider Taxonomy Code_15 Provider License Number_15
    1:                                                                                                               
    2:                                                                                                               
    3:                                                                                                               
       Provider License Number State Code_15 Healthcare Provider Primary Taxonomy Switch_15 Other Provider Identifier_1
    1:                                                                                                                 
    2:                                                                                                                 
    3:                                                                                                                 
       Other Provider Identifier Type Code_1 Other Provider Identifier State_1 Other Provider Identifier Issuer_1
    1:                                    NA                                                                     
    2:                                    NA                                                                     
    3:                                    NA                                                                     
       Other Provider Identifier_2 Other Provider Identifier Type Code_2 Other Provider Identifier State_2
    1:                                                                NA                                  
    2:                                                                NA                                  
    3:                                                                NA                                  
       Other Provider Identifier Issuer_2 Other Provider Identifier_3 Other Provider Identifier Type Code_3
    1:                                                                                                   NA
    2:                                                                                                   NA
    3:                                                                                                   NA
       Other Provider Identifier State_3 Other Provider Identifier Issuer_3 Other Provider Identifier_4
    1:                                                                                                 
    2:                                                                                                 
    3:                                                                                                 
       Other Provider Identifier Type Code_4 Other Provider Identifier State_4 Other Provider Identifier Issuer_4
    1:                                    NA                                                                     
    2:                                    NA                                                                     
    3:                                    NA                                                                     
       Other Provider Identifier_5 Other Provider Identifier Type Code_5 Other Provider Identifier State_5
    1:                                                                NA                                  
    2:                                                                NA                                  
    3:                                                                NA                                  
       Other Provider Identifier Issuer_5 Other Provider Identifier_6 Other Provider Identifier Type Code_6
    1:                                                                                                   NA
    2:                                                                                                   NA
    3:                                                                                                   NA
       Other Provider Identifier State_6 Other Provider Identifier Issuer_6 Other Provider Identifier_7
    1:                                                                                                 
    2:                                                                                                 
    3:                                                                                                 
       Other Provider Identifier Type Code_7 Other Provider Identifier State_7 Other Provider Identifier Issuer_7
    1:                                    NA                                                                     
    2:                                    NA                                                                     
    3:                                    NA                                                                     
       Other Provider Identifier_8 Other Provider Identifier Type Code_8 Other Provider Identifier State_8
    1:                                                                NA                                  
    2:                                                                NA                                  
    3:                                                                NA                                  
       Other Provider Identifier Issuer_8 Other Provider Identifier_9 Other Provider Identifier Type Code_9
    1:                                                                                                   NA
    2:                                                                                                   NA
    3:                                                                                                   NA
       Other Provider Identifier State_9 Other Provider Identifier Issuer_9 Other Provider Identifier_10
    1:                                                                                                  
    2:                                                                                                  
    3:                                                                                                  
       Other Provider Identifier Type Code_10 Other Provider Identifier State_10 Other Provider Identifier Issuer_10
    1:                                     NA                                                                       
    2:                                     NA                                                                       
    3:                                     NA                                                                       
       Other Provider Identifier_11 Other Provider Identifier Type Code_11 Other Provider Identifier State_11
    1:                                                                  NA                                   
    2:                                                                  NA                                   
    3:                                                                  NA                                   
       Other Provider Identifier Issuer_11 Other Provider Identifier_12 Other Provider Identifier Type Code_12
    1:                                                                                                      NA
    2:                                                                                                      NA
    3:                                                                                                      NA
       Other Provider Identifier State_12 Other Provider Identifier Issuer_12 Other Provider Identifier_13
    1:                                                                                                    
    2:                                                                                                    
    3:                                                                                                    
       Other Provider Identifier Type Code_13 Other Provider Identifier State_13 Other Provider Identifier Issuer_13
    1:                                     NA                                                                       
    2:                                     NA                                                                       
    3:                                     NA                                                                       
       Other Provider Identifier_14 Other Provider Identifier Type Code_14 Other Provider Identifier State_14
    1:                                                                  NA                                   
    2:                                                                  NA                                   
    3:                                                                  NA                                   
       Other Provider Identifier Issuer_14 Other Provider Identifier_15 Other Provider Identifier Type Code_15
    1:                                                                                                      NA
    2:                                                                                                      NA
    3:                                                                                                      NA
       Other Provider Identifier State_15 Other Provider Identifier Issuer_15 Other Provider Identifier_16
    1:                                                                                                    
    2:                                                                                                    
    3:                                                                                                    
       Other Provider Identifier Type Code_16 Other Provider Identifier State_16 Other Provider Identifier Issuer_16
    1:                                     NA                                                                       
    2:                                     NA                                                                       
    3:                                     NA                                                                       
       Other Provider Identifier_17 Other Provider Identifier Type Code_17 Other Provider Identifier State_17
    1:                                                                  NA                                   
    2:                                                                  NA                                   
    3:                                                                  NA                                   
       Other Provider Identifier Issuer_17 Other Provider Identifier_18 Other Provider Identifier Type Code_18
    1:                                                                                                      NA
    2:                                                                                                      NA
    3:                                                                                                      NA
       Other Provider Identifier State_18 Other Provider Identifier Issuer_18 Other Provider Identifier_19
    1:                                                                                                    
    2:                                                                                                    
    3:                                                                                                    
       Other Provider Identifier Type Code_19 Other Provider Identifier State_19 Other Provider Identifier Issuer_19
    1:                                     NA                                                                       
    2:                                     NA                                                                       
    3:                                     NA                                                                       
       Other Provider Identifier_20 Other Provider Identifier Type Code_20 Other Provider Identifier State_20
    1:                           NA                                     NA                                   
    2:                           NA                                     NA                                   
    3:                           NA                                     NA                                   
       Other Provider Identifier Issuer_20 Other Provider Identifier_21 Other Provider Identifier Type Code_21
    1:                                                                                                      NA
    2:                                                                                                      NA
    3:                                                                                                      NA
       Other Provider Identifier State_21 Other Provider Identifier Issuer_21 Other Provider Identifier_22
    1:                                                                                                  NA
    2:                                                                                                  NA
    3:                                                                                                  NA
       Other Provider Identifier Type Code_22 Other Provider Identifier State_22 Other Provider Identifier Issuer_22
    1:                                     NA                                 NA                                  NA
    2:                                     NA                                 NA                                  NA
    3:                                     NA                                 NA                                  NA
       Other Provider Identifier_23 Other Provider Identifier Type Code_23 Other Provider Identifier State_23
    1:                           NA                                     NA                                 NA
    2:                           NA                                     NA                                 NA
    3:                           NA                                     NA                                 NA
       Other Provider Identifier Issuer_23 Other Provider Identifier_24 Other Provider Identifier Type Code_24
    1:                                  NA                           NA                                     NA
    2:                                  NA                           NA                                     NA
    3:                                  NA                           NA                                     NA
       Other Provider Identifier State_24 Other Provider Identifier Issuer_24 Other Provider Identifier_25
    1:                                 NA                                  NA                           NA
    2:                                 NA                                  NA                           NA
    3:                                 NA                                  NA                           NA
       Other Provider Identifier Type Code_25 Other Provider Identifier State_25 Other Provider Identifier Issuer_25
    1:                                     NA                                 NA                                  NA
    2:                                     NA                                 NA                                  NA
    3:                                     NA                                 NA                                  NA
       Other Provider Identifier_26 Other Provider Identifier Type Code_26 Other Provider Identifier State_26
    1:                           NA                                     NA                                 NA
    2:                           NA                                     NA                                 NA
    3:                           NA                                     NA                                 NA
       Other Provider Identifier Issuer_26 Other Provider Identifier_27 Other Provider Identifier Type Code_27
    1:                                  NA                           NA                                     NA
    2:                                  NA                           NA                                     NA
    3:                                  NA                           NA                                     NA
       Other Provider Identifier State_27 Other Provider Identifier Issuer_27 Other Provider Identifier_28
    1:                                 NA                                  NA                           NA
    2:                                 NA                                  NA                           NA
    3:                                 NA                                  NA                           NA
       Other Provider Identifier Type Code_28 Other Provider Identifier State_28 Other Provider Identifier Issuer_28
    1:                                     NA                                 NA                                  NA
    2:                                     NA                                 NA                                  NA
    3:                                     NA                                 NA                                  NA
       Other Provider Identifier_29 Other Provider Identifier Type Code_29 Other Provider Identifier State_29
    1:                           NA                                     NA                                 NA
    2:                           NA                                     NA                                 NA
    3:                           NA                                     NA                                 NA
       Other Provider Identifier Issuer_29 Other Provider Identifier_30 Other Provider Identifier Type Code_30
    1:                                  NA                           NA                                     NA
    2:                                  NA                           NA                                     NA
    3:                                  NA                           NA                                     NA
       Other Provider Identifier State_30 Other Provider Identifier Issuer_30 Other Provider Identifier_31
    1:                                 NA                                  NA                           NA
    2:                                 NA                                  NA                           NA
    3:                                 NA                                  NA                           NA
       Other Provider Identifier Type Code_31 Other Provider Identifier State_31 Other Provider Identifier Issuer_31
    1:                                     NA                                 NA                                  NA
    2:                                     NA                                 NA                                  NA
    3:                                     NA                                 NA                                  NA
       Other Provider Identifier_32 Other Provider Identifier Type Code_32 Other Provider Identifier State_32
    1:                           NA                                     NA                                 NA
    2:                           NA                                     NA                                 NA
    3:                           NA                                     NA                                 NA
       Other Provider Identifier Issuer_32 Other Provider Identifier_33 Other Provider Identifier Type Code_33
    1:                                  NA                           NA                                     NA
    2:                                  NA                           NA                                     NA
    3:                                  NA                           NA                                     NA
       Other Provider Identifier State_33 Other Provider Identifier Issuer_33 Other Provider Identifier_34
    1:                                 NA                                  NA                           NA
    2:                                 NA                                  NA                           NA
    3:                                 NA                                  NA                           NA
       Other Provider Identifier Type Code_34 Other Provider Identifier State_34 Other Provider Identifier Issuer_34
    1:                                     NA                                 NA                                  NA
    2:                                     NA                                 NA                                  NA
    3:                                     NA                                 NA                                  NA
       Other Provider Identifier_35 Other Provider Identifier Type Code_35 Other Provider Identifier State_35
    1:                           NA                                     NA                                 NA
    2:                           NA                                     NA                                 NA
    3:                           NA                                     NA                                 NA
       Other Provider Identifier Issuer_35 Other Provider Identifier_36 Other Provider Identifier Type Code_36
    1:                                  NA                           NA                                     NA
    2:                                  NA                           NA                                     NA
    3:                                  NA                           NA                                     NA
       Other Provider Identifier State_36 Other Provider Identifier Issuer_36 Other Provider Identifier_37
    1:                                 NA                                  NA                           NA
    2:                                 NA                                  NA                           NA
    3:                                 NA                                  NA                           NA
       Other Provider Identifier Type Code_37 Other Provider Identifier State_37 Other Provider Identifier Issuer_37
    1:                                     NA                                 NA                                  NA
    2:                                     NA                                 NA                                  NA
    3:                                     NA                                 NA                                  NA
       Other Provider Identifier_38 Other Provider Identifier Type Code_38 Other Provider Identifier State_38
    1:                           NA                                     NA                                 NA
    2:                           NA                                     NA                                 NA
    3:                           NA                                     NA                                 NA
       Other Provider Identifier Issuer_38 Other Provider Identifier_39 Other Provider Identifier Type Code_39
    1:                                  NA                           NA                                     NA
    2:                                  NA                           NA                                     NA
    3:                                  NA                           NA                                     NA
       Other Provider Identifier State_39 Other Provider Identifier Issuer_39 Other Provider Identifier_40
    1:                                 NA                                  NA                           NA
    2:                                 NA                                  NA                           NA
    3:                                 NA                                  NA                           NA
       Other Provider Identifier Type Code_40 Other Provider Identifier State_40 Other Provider Identifier Issuer_40
    1:                                     NA                                 NA                                  NA
    2:                                     NA                                 NA                                  NA
    3:                                     NA                                 NA                                  NA
       Other Provider Identifier_41 Other Provider Identifier Type Code_41 Other Provider Identifier State_41
    1:                           NA                                     NA                                 NA
    2:                           NA                                     NA                                 NA
    3:                           NA                                     NA                                 NA
       Other Provider Identifier Issuer_41 Other Provider Identifier_42 Other Provider Identifier Type Code_42
    1:                                  NA                           NA                                     NA
    2:                                  NA                           NA                                     NA
    3:                                  NA                           NA                                     NA
       Other Provider Identifier State_42 Other Provider Identifier Issuer_42 Other Provider Identifier_43
    1:                                 NA                                  NA                           NA
    2:                                 NA                                  NA                           NA
    3:                                 NA                                  NA                           NA
       Other Provider Identifier Type Code_43 Other Provider Identifier State_43 Other Provider Identifier Issuer_43
    1:                                     NA                                 NA                                  NA
    2:                                     NA                                 NA                                  NA
    3:                                     NA                                 NA                                  NA
       Other Provider Identifier_44 Other Provider Identifier Type Code_44 Other Provider Identifier State_44
    1:                           NA                                     NA                                 NA
    2:                           NA                                     NA                                 NA
    3:                           NA                                     NA                                 NA
       Other Provider Identifier Issuer_44 Other Provider Identifier_45 Other Provider Identifier Type Code_45
    1:                                  NA                           NA                                     NA
    2:                                  NA                           NA                                     NA
    3:                                  NA                           NA                                     NA
       Other Provider Identifier State_45 Other Provider Identifier Issuer_45 Other Provider Identifier_46
    1:                                 NA                                  NA                           NA
    2:                                 NA                                  NA                           NA
    3:                                 NA                                  NA                           NA
       Other Provider Identifier Type Code_46 Other Provider Identifier State_46 Other Provider Identifier Issuer_46
    1:                                     NA                                 NA                                  NA
    2:                                     NA                                 NA                                  NA
    3:                                     NA                                 NA                                  NA
       Other Provider Identifier_47 Other Provider Identifier Type Code_47 Other Provider Identifier State_47
    1:                           NA                                     NA                                 NA
    2:                           NA                                     NA                                 NA
    3:                           NA                                     NA                                 NA
       Other Provider Identifier Issuer_47 Other Provider Identifier_48 Other Provider Identifier Type Code_48
    1:                                  NA                           NA                                     NA
    2:                                  NA                           NA                                     NA
    3:                                  NA                           NA                                     NA
       Other Provider Identifier State_48 Other Provider Identifier Issuer_48 Other Provider Identifier_49
    1:                                 NA                                  NA                           NA
    2:                                 NA                                  NA                           NA
    3:                                 NA                                  NA                           NA
       Other Provider Identifier Type Code_49 Other Provider Identifier State_49 Other Provider Identifier Issuer_49
    1:                                     NA                                 NA                                  NA
    2:                                     NA                                 NA                                  NA
    3:                                     NA                                 NA                                  NA
       Other Provider Identifier_50 Other Provider Identifier Type Code_50 Other Provider Identifier State_50
    1:                           NA                                     NA                                 NA
    2:                           NA                                     NA                                 NA
    3:                           NA                                     NA                                 NA
       Other Provider Identifier Issuer_50 Is Sole Proprietor Is Organization Subpart Parent Organization LBN
    1:                                  NA                                          N                        
    2:                                  NA                                          N                        
    3:                                  NA                                          N                        
       Parent Organization TIN Authorized Official Name Prefix Text Authorized Official Name Suffix Text
    1:                                                                                                  
    2:                                                         MRS.                                     
    3:                                                                                                  
       Authorized Official Credential Text       Healthcare Provider Taxonomy Group_1 Healthcare Provider Taxonomy Group_2
    1:                                  NP           193200000X MULTI-SPECIALTY GROUP     193200000X MULTI-SPECIALTY GROUP
    2:                                                                                                                    
    3:                                               193200000X MULTI-SPECIALTY GROUP                                     
       Healthcare Provider Taxonomy Group_3 Healthcare Provider Taxonomy Group_4 Healthcare Provider Taxonomy Group_5
    1:                                                                                                               
    2:                                                                                                               
    3:                                                                                                               
       Healthcare Provider Taxonomy Group_6 Healthcare Provider Taxonomy Group_7 Healthcare Provider Taxonomy Group_8
    1:                                                                                                               
    2:                                                                                                               
    3:                                                                                                               
       Healthcare Provider Taxonomy Group_9 Healthcare Provider Taxonomy Group_10 Healthcare Provider Taxonomy Group_11
    1:                                                                                                                 
    2:                                                                                                                 
    3:                                                                                                                 
       Healthcare Provider Taxonomy Group_12 Healthcare Provider Taxonomy Group_13 Healthcare Provider Taxonomy Group_14
    1:                                                                                                                  
    2:                                                                                                                  
    3:                                                                                                                  
       Healthcare Provider Taxonomy Group_15 Certification Date
    1:                                               12/07/2020
    2:                                               12/07/2020
    3:                                               12/07/2020
 [ reached getOption("max.print") -- omitted 8 rows ]

dplyr::glimpse also gives a long output, but still very much readable.

View output

> dplyr::glimpse(data)
Rows: 21,806
Columns: 330
$ NPI                                                                          <int> 1134691124, 1124623970, 1154927192, 1144...
$ `Entity Type Code`                                                           <int> 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1...
$ `Replacement NPI`                                                            <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Employer Identification Number (EIN)`                                       <chr> "<UNAVAIL>", "<UNAVAIL>", "<UNAVAIL>", "...
$ `Provider Organization Name (Legal Business Name)`                           <chr> "SOCAL BEHAVIORAL MEDICINE", "FULL OF GR...
$ `Provider Last Name (Legal Name)`                                            <chr> "", "", "", "SLAT", "", "CARABBACAN", ""...
$ `Provider First Name`                                                        <chr> "", "", "", "STACY", "", "NICCOLO MCWIN"...
$ `Provider Middle Name`                                                       <chr> "", "", "", "KING", "", "MADRIGAL", "", ...
$ `Provider Name Prefix Text`                                                  <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider Name Suffix Text`                                                  <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider Credential Text`                                                   <chr> "", "", "", "MD", "", "", "", "", "", "D...
$ `Provider Other Organization Name`                                           <chr> "SOCAL BEHAVIORAL MEDICINE", "", "", "",...
$ `Provider Other Organization Name Type Code`                                 <int> 3, NA, NA, NA, NA, NA, NA, NA, 3, NA, NA...
$ `Provider Other Last Name`                                                   <chr> "", "", "", "KING", "", "", "", "", "", ...
$ `Provider Other First Name`                                                  <chr> "", "", "", "STACY", "", "", "", "", "",...
$ `Provider Other Middle Name`                                                 <chr> "", "", "", "MARIE", "", "", "", "", "",...
$ `Provider Other Name Prefix Text`                                            <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider Other Name Suffix Text`                                            <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider Other Credential Text`                                             <chr> "", "", "", "M.D.", "", "", "", "", "", ...
$ `Provider Other Last Name Type Code`                                         <int> NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, N...
$ `Provider First Line Business Mailing Address`                               <chr> "10650 REAGAN ST UNIT 824", "6609 W BROO...
$ `Provider Second Line Business Mailing Address`                              <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider Business Mailing Address City Name`                                <chr> "LOS ALAMITOS", "PHOENIX", "CORONA", "NE...
$ `Provider Business Mailing Address State Name`                               <chr> "CA", "AZ", "CA", "VA", "NJ", "CA", "CO"...
$ `Provider Business Mailing Address Postal Code`                              <chr> "907208844", "850837403", "928827916", "...
$ `Provider Business Mailing Address Country Code (If outside U.S.)`           <chr> "US", "US", "US", "US", "US", "US", "US"...
$ `Provider Business Mailing Address Telephone Number`                         <chr> "", "5053079984", "6269935823", "7573165...
$ `Provider Business Mailing Address Fax Number`                               <int64> NA, 4807187714, NA, NA, NA, NA, 970484...
$ `Provider First Line Business Practice Location Address`                     <chr> "234 S PACIFIC COAST HWY STE 202", "6609...
$ `Provider Second Line Business Practice Location Address`                    <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider Business Practice Location Address City Name`                      <chr> "REDONDO BEACH", "PHOENIX", "CORONA", "W...
$ `Provider Business Practice Location Address State Name`                     <chr> "CA", "AZ", "CA", "VA", "NJ", "CA", "CO"...
$ `Provider Business Practice Location Address Postal Code`                    <chr> "902777001", "850837403", "928827916", "...
$ `Provider Business Practice Location Address Country Code (If outside U.S.)` <chr> "US", "US", "US", "US", "US", "US", "US"...
$ `Provider Business Practice Location Address Telephone Number`               <chr> "3106985252", "5053079984", "6269935823"...
$ `Provider Business Practice Location Address Fax Number`                     <int64> NA, 4807187714, NA, NA, NA, 8585389751...
$ `Provider Enumeration Date`                                                  <chr> "01/01/2019", "12/01/2020", "12/07/2020"...
$ `Last Update Date`                                                           <chr> "12/07/2020", "12/07/2020", "12/07/2020"...
$ `NPI Deactivation Reason Code`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `NPI Deactivation Date`                                                      <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `NPI Reactivation Date`                                                      <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider Gender Code`                                                       <chr> "", "", "", "F", "", "M", "", "", "", "F...
$ `Authorized Official Last Name`                                              <chr> "HULST", "HURT", "YOUSSEF", "", "TIMOTHE...
$ `Authorized Official First Name`                                             <chr> "GINGER", "TYRREIA", "ALICE", "", "BEBYT...
$ `Authorized Official Middle Name`                                            <chr> "", "S", "K", "", "", "", "LYNN", "LYNN"...
$ `Authorized Official Title or Position`                                      <chr> "CO-OWNER", "MEMBER", "OWNER", "", "MANA...
$ `Authorized Official Telephone Number`                                       <int64> 3106985252, 5053079984, 6269935823, NA...
$ `Healthcare Provider Taxonomy Code_1`                                        <chr> "363LF0000X", "343900000X", "172V00000X"...
$ `Provider License Number_1`                                                  <chr> "", "", "", "48977", "", "83591", "", ""...
$ `Provider License Number State Code_1`                                       <chr> "", "", "", "CT", "", "CA", "", "", "MN"...
$ `Healthcare Provider Primary Taxonomy Switch_1`                              <chr> "N", "Y", "Y", "Y", "N", "Y", "Y", "Y", ...
$ `Healthcare Provider Taxonomy Code_2`                                        <chr> "207RA0401X", "", "", "", "", "", "", ""...
$ `Provider License Number_2`                                                  <chr> "", "", "", "", "", "", "", "", "", "156...
$ `Provider License Number State Code_2`                                       <chr> "", "", "", "", "", "", "", "", "", "MA"...
$ `Healthcare Provider Primary Taxonomy Switch_2`                              <chr> "Y", "", "", "", "", "", "", "", "", "N"...
$ `Healthcare Provider Taxonomy Code_3`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number_3`                                                  <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number State Code_3`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Primary Taxonomy Switch_3`                              <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Code_4`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number_4`                                                  <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number State Code_4`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Primary Taxonomy Switch_4`                              <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Code_5`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number_5`                                                  <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number State Code_5`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Primary Taxonomy Switch_5`                              <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Code_6`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number_6`                                                  <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number State Code_6`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Primary Taxonomy Switch_6`                              <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Code_7`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number_7`                                                  <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number State Code_7`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Primary Taxonomy Switch_7`                              <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Code_8`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number_8`                                                  <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number State Code_8`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Primary Taxonomy Switch_8`                              <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Code_9`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number_9`                                                  <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number State Code_9`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Primary Taxonomy Switch_9`                              <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Code_10`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number_10`                                                 <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number State Code_10`                                      <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Primary Taxonomy Switch_10`                             <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Code_11`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number_11`                                                 <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number State Code_11`                                      <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Primary Taxonomy Switch_11`                             <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Code_12`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number_12`                                                 <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number State Code_12`                                      <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Primary Taxonomy Switch_12`                             <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Code_13`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number_13`                                                 <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number State Code_13`                                      <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Primary Taxonomy Switch_13`                             <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Code_14`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number_14`                                                 <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number State Code_14`                                      <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Primary Taxonomy Switch_14`                             <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Code_15`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number_15`                                                 <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Provider License Number State Code_15`                                      <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Primary Taxonomy Switch_15`                             <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_1`                                                <chr> "", "", "", "", "", "", "", "", "381417"...
$ `Other Provider Identifier Type Code_1`                                      <int> NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, N...
$ `Other Provider Identifier State_1`                                          <chr> "", "", "", "", "", "", "", "", "MN", ""...
$ `Other Provider Identifier Issuer_1`                                         <chr> "", "", "", "", "", "", "", "", "MINNESO...
$ `Other Provider Identifier_2`                                                <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_2`                                      <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_2`                                          <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_2`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_3`                                                <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_3`                                      <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_3`                                          <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_3`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_4`                                                <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_4`                                      <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_4`                                          <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_4`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_5`                                                <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_5`                                      <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_5`                                          <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_5`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_6`                                                <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_6`                                      <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_6`                                          <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_6`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_7`                                                <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_7`                                      <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_7`                                          <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_7`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_8`                                                <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_8`                                      <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_8`                                          <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_8`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_9`                                                <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_9`                                      <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_9`                                          <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_9`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_10`                                               <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_10`                                     <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_10`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_10`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_11`                                               <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_11`                                     <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_11`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_11`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_12`                                               <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_12`                                     <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_12`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_12`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_13`                                               <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_13`                                     <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_13`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_13`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_14`                                               <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_14`                                     <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_14`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_14`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_15`                                               <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_15`                                     <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_15`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_15`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_16`                                               <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_16`                                     <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_16`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_16`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_17`                                               <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_17`                                     <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_17`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_17`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_18`                                               <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_18`                                     <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_18`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_18`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_19`                                               <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_19`                                     <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_19`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_19`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_20`                                               <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_20`                                     <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_20`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_20`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_21`                                               <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Type Code_21`                                     <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_21`                                         <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier Issuer_21`                                        <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Other Provider Identifier_22`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_22`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_22`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_22`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_23`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_23`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_23`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_23`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_24`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_24`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_24`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_24`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_25`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_25`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_25`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_25`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_26`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_26`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_26`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_26`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_27`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_27`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_27`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_27`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_28`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_28`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_28`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_28`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_29`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_29`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_29`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_29`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_30`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_30`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_30`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_30`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_31`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_31`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_31`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_31`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_32`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_32`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_32`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_32`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_33`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_33`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_33`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_33`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_34`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_34`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_34`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_34`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_35`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_35`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_35`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_35`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_36`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_36`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_36`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_36`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_37`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_37`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_37`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_37`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_38`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_38`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_38`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_38`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_39`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_39`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_39`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_39`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_40`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_40`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_40`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_40`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_41`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_41`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_41`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_41`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_42`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_42`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_42`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_42`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_43`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_43`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_43`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_43`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_44`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_44`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_44`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_44`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_45`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_45`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_45`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_45`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_46`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_46`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_46`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_46`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_47`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_47`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_47`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_47`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_48`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_48`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_48`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_48`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_49`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_49`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_49`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_49`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier_50`                                               <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Type Code_50`                                     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier State_50`                                         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Other Provider Identifier Issuer_50`                                        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
$ `Is Sole Proprietor`                                                         <chr> "", "", "", "N", "", "N", "", "", "", "N...
$ `Is Organization Subpart`                                                    <chr> "N", "N", "N", "", "N", "", "N", "N", "N...
$ `Parent Organization LBN`                                                    <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Parent Organization TIN`                                                    <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Authorized Official Name Prefix Text`                                       <chr> "", "MRS.", "", "", "", "", "", "", "", ...
$ `Authorized Official Name Suffix Text`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Authorized Official Credential Text`                                        <chr> "NP", "", "", "", "LPN", "", "", "", "RN...
$ `Healthcare Provider Taxonomy Group_1`                                       <chr> "193200000X MULTI-SPECIALTY GROUP", "", ...
$ `Healthcare Provider Taxonomy Group_2`                                       <chr> "193200000X MULTI-SPECIALTY GROUP", "", ...
$ `Healthcare Provider Taxonomy Group_3`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Group_4`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Group_5`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Group_6`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Group_7`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Group_8`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Group_9`                                       <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Group_10`                                      <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Group_11`                                      <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Group_12`                                      <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Group_13`                                      <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Group_14`                                      <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Healthcare Provider Taxonomy Group_15`                                      <chr> "", "", "", "", "", "", "", "", "", "", ...
$ `Certification Date`                                                         <chr> "12/07/2020", "12/07/2020", "12/07/2020"...

In my opinion, the latter gives a summary of the dataset that proves helpful, from understanding the contents as well as column names of the data. Note that this isn't a dataset that can be melted down. I could use str as an alternative, but it doesn't print very neatly i.e. data from a single column is shown on the next row on the console (not seen here), eg:

View output

Classesdata.tableand 'data.frame':	21806 obs. of  330 variables:
 $ NPI                                                                       : int  1134691124 1124623970 1154927192 1144411422 1245836287 1376144014 1063018000 1972109916 1649792151 1275649105 ...
 $ Entity Type Code                                                          : int  2 2 2 1 2 1 2 2 2 1 ...
 $ Replacement NPI                                                           : logi  NA NA NA NA NA NA ...
 $ Employer Identification Number (EIN)                                      : chr  "<UNAVAIL>" "<UNAVAIL>" "<UNAVAIL>" "" ...
 $ Provider Organization Name (Legal Business Name)                          : chr  "SOCAL BEHAVIORAL MEDICINE" "FULL OF GREATS TRANSPORT LLC FOG TRANSPORT" "4000 MOUNT ELENA CIRCLE CORONA, CA 92882" "" ...
 $ Provider Last Name (Legal Name)                                           : chr  "" "" "" "SLAT" ...
 $ Provider First Name                                                       : chr  "" "" "" "STACY" ...
 $ Provider Middle Name                                                      : chr  "" "" "" "KING" ...
 $ Provider Name Prefix Text                                                 : chr  "" "" "" "" ...
 $ Provider Name Suffix Text                                                 : chr  "" "" "" "" ...
 $ Provider Credential Text                                                  : chr  "" "" "" "MD" ...
 $ Provider Other Organization Name                                          : chr  "SOCAL BEHAVIORAL MEDICINE" "" "" "" ...
 $ Provider Other Organization Name Type Code                                : int  3 NA NA NA NA NA NA NA 3 NA ...
 $ Provider Other Last Name                                                  : chr  "" "" "" "KING" ...
 $ Provider Other First Name                                                 : chr  "" "" "" "STACY" ...
 $ Provider Other Middle Name                                                : chr  "" "" "" "MARIE" ...
 $ Provider Other Name Prefix Text                                           : chr  "" "" "" "" ...
 $ Provider Other Name Suffix Text                                           : chr  "" "" "" "" ...
 $ Provider Other Credential Text                                            : chr  "" "" "" "M.D." ...
 $ Provider Other Last Name Type Code                                        : int  NA NA NA 1 NA NA NA NA NA NA ...
 $ Provider First Line Business Mailing Address                              : chr  "10650 REAGAN ST UNIT 824" "6609 W BROOKHART WAY" "4000 MOUNT ELENA CIR" "856 J CLYDE MORRIS BLVD STE A" ...
 $ Provider Second Line Business Mailing Address                             : chr  "" "" "" "" ...
 $ Provider Business Mailing Address City Name                               : chr  "LOS ALAMITOS" "PHOENIX" "CORONA" "NEWPORT NEWS" ...
 $ Provider Business Mailing Address State Name                              : chr  "CA" "AZ" "CA" "VA" ...
 $ Provider Business Mailing Address Postal Code                             : chr  "907208844" "850837403" "928827916" "236011318" ...
 $ Provider Business Mailing Address Country Code (If outside U.S.)          : chr  "US" "US" "US" "US" ...
 $ Provider Business Mailing Address Telephone Number                        : chr  "" "5053079984" "6269935823" "7573165800" ...
 $ Provider Business Mailing Address Fax Number                              :integer64 NA 4807187714 NA NA NA NA 9704842251 9704842251 ... 
 $ Provider First Line Business Practice Location Address                    : chr  "234 S PACIFIC COAST HWY STE 202" "6609 W BROOKHART WAY" "4000 MOUNT ELENA CIR" "120 KINGS WAY STE 3400" ...
 $ Provider Second Line Business Practice Location Address                   : chr  "" "" "" "" ...
 $ Provider Business Practice Location Address City Name                     : chr  "REDONDO BEACH" "PHOENIX" "CORONA" "WILLIAMSBURG" ...
 $ Provider Business Practice Location Address State Name                    : chr  "CA" "AZ" "CA" "VA" ...
 $ Provider Business Practice Location Address Postal Code                   : chr  "902777001" "850837403" "928827916" "231852511" ...
 $ Provider Business Practice Location Address Country Code (If outside U.S.): chr  "US" "US" "US" "US" ...
 $ Provider Business Practice Location Address Telephone Number              : chr  "3106985252" "5053079984" "6269935823" "7572535600" ...
 $ Provider Business Practice Location Address Fax Number                    :integer64 NA 4807187714 NA NA NA 8585389751 3036660911 3036660911 ... 
 $ Provider Enumeration Date                                                 : chr  "01/01/2019" "12/01/2020" "12/07/2020" "08/05/2007" ...
 $ Last Update Date                                                          : chr  "12/07/2020" "12/07/2020" "12/07/2020" "12/07/2020" ...
 $ NPI Deactivation Reason Code                                              : logi  NA NA NA NA NA NA ...
 $ NPI Deactivation Date                                                     : chr  "" "" "" "" ...
 $ NPI Reactivation Date                                                     : chr  "" "" "" "" ...
 $ Provider Gender Code                                                      : chr  "" "" "" "F" ...
 $ Authorized Official Last Name                                             : chr  "HULST" "HURT" "YOUSSEF" "" ...
 $ Authorized Official First Name                                            : chr  "GINGER" "TYRREIA" "ALICE" "" ...
 $ Authorized Official Middle Name                                           : chr  "" "S" "K" "" ...
 $ Authorized Official Title or Position                                     : chr  "CO-OWNER" "MEMBER" "OWNER" "" ...
 $ Authorized Official Telephone Number                                      :integer64 3106985252 5053079984 6269935823 NA 8626840895 NA 9704304431 9704304431 ... 
 $ Healthcare Provider Taxonomy Code_1                                       : chr  "363LF0000X" "343900000X" "172V00000X" "207V00000X" ...
 $ Provider License Number_1                                                 : chr  "" "" "" "48977" ...
 $ Provider License Number State Code_1                                      : chr  "" "" "" "CT" ...
 $ Healthcare Provider Primary Taxonomy Switch_1                             : chr  "N" "Y" "Y" "Y" ...
 $ Healthcare Provider Taxonomy Code_2                                       : chr  "207RA0401X" "" "" "" ...
 $ Provider License Number_2                                                 : chr  "" "" "" "" ...
 $ Provider License Number State Code_2                                      : chr  "" "" "" "" ...
 $ Healthcare Provider Primary Taxonomy Switch_2                             : chr  "Y" "" "" "" ...
 $ Healthcare Provider Taxonomy Code_3                                       : chr  "" "" "" "" ...
 $ Provider License Number_3                                                 : chr  "" "" "" "" ...
 $ Provider License Number State Code_3                                      : chr  "" "" "" "" ...
 $ Healthcare Provider Primary Taxonomy Switch_3                             : chr  "" "" "" "" ...
 $ Healthcare Provider Taxonomy Code_4                                       : chr  "" "" "" "" ...
 $ Provider License Number_4                                                 : chr  "" "" "" "" ...
 $ Provider License Number State Code_4                                      : chr  "" "" "" "" ...
 $ Healthcare Provider Primary Taxonomy Switch_4                             : chr  "" "" "" "" ...
 $ Healthcare Provider Taxonomy Code_5                                       : chr  "" "" "" "" ...
 $ Provider License Number_5                                                 : chr  "" "" "" "" ...
 $ Provider License Number State Code_5                                      : chr  "" "" "" "" ...
 $ Healthcare Provider Primary Taxonomy Switch_5                             : chr  "" "" "" "" ...
 $ Healthcare Provider Taxonomy Code_6                                       : chr  "" "" "" "" ...
 $ Provider License Number_6                                                 : chr  "" "" "" "" ...
 $ Provider License Number State Code_6                                      : chr  "" "" "" "" ...
 $ Healthcare Provider Primary Taxonomy Switch_6                             : chr  "" "" "" "" ...
 $ Healthcare Provider Taxonomy Code_7                                       : chr  "" "" "" "" ...
 $ Provider License Number_7                                                 : chr  "" "" "" "" ...
 $ Provider License Number State Code_7                                      : chr  "" "" "" "" ...
 $ Healthcare Provider Primary Taxonomy Switch_7                             : chr  "" "" "" "" ...
 $ Healthcare Provider Taxonomy Code_8                                       : chr  "" "" "" "" ...
 $ Provider License Number_8                                                 : chr  "" "" "" "" ...
 $ Provider License Number State Code_8                                      : chr  "" "" "" "" ...
 $ Healthcare Provider Primary Taxonomy Switch_8                             : chr  "" "" "" "" ...
 $ Healthcare Provider Taxonomy Code_9                                       : chr  "" "" "" "" ...
 $ Provider License Number_9                                                 : chr  "" "" "" "" ...
 $ Provider License Number State Code_9                                      : chr  "" "" "" "" ...
 $ Healthcare Provider Primary Taxonomy Switch_9                             : chr  "" "" "" "" ...
 $ Healthcare Provider Taxonomy Code_10                                      : chr  "" "" "" "" ...
 $ Provider License Number_10                                                : chr  "" "" "" "" ...
 $ Provider License Number State Code_10                                     : chr  "" "" "" "" ...
 $ Healthcare Provider Primary Taxonomy Switch_10                            : chr  "" "" "" "" ...
 $ Healthcare Provider Taxonomy Code_11                                      : chr  "" "" "" "" ...
 $ Provider License Number_11                                                : chr  "" "" "" "" ...
 $ Provider License Number State Code_11                                     : chr  "" "" "" "" ...
 $ Healthcare Provider Primary Taxonomy Switch_11                            : chr  "" "" "" "" ...
 $ Healthcare Provider Taxonomy Code_12                                      : chr  "" "" "" "" ...
 $ Provider License Number_12                                                : chr  "" "" "" "" ...
 $ Provider License Number State Code_12                                     : chr  "" "" "" "" ...
 $ Healthcare Provider Primary Taxonomy Switch_12                            : chr  "" "" "" "" ...
 $ Healthcare Provider Taxonomy Code_13                                      : chr  "" "" "" "" ...
 $ Provider License Number_13                                                : chr  "" "" "" "" ...
 $ Provider License Number State Code_13                                     : chr  "" "" "" "" ...
 $ Healthcare Provider Primary Taxonomy Switch_13                            : chr  "" "" "" "" ...
  [list output truncated]
 - attr(*, ".internal.selfref")=<externalptr>

Will it be possible to add something like this for data.table to avoid the additional dependency that dplyr requires?

I also see that print.data.table is almost entirely R code - if this is something feasible without delving into C, I might be able to give it a stab - can someone provide some guidance on this? It can be a separate function (much better idea), or available as an option from getOption.

@jangorecki
Copy link
Member

@jangorecki jangorecki commented Dec 29, 2020

I think str is really good. It might not be polished as much as glimpse but maybe there is a possibility to improve it? changes in this function should be pretty safe because I don't think there are reasonable use cases to parse output of str. Its output is strictly to be read by humans and not a program. For me str works well enough already, but you can list your ideas for improvement and propose on R-devel.

@avimallu
Copy link
Contributor

@avimallu avimallu commented Dec 29, 2020

Oh, I wasn't planning on proposing any changes to R devel - only restricting it to data.table. Basically, creating a polished version of it for use in data.table without dependencies to help with the use case mentioned above. I just did a quick check online, it might be possible to implement it in R itself - would that be something that would be worth integrating into data.table?

@jangorecki
Copy link
Member

@jangorecki jangorecki commented Dec 29, 2020

I understand, my point was very subjective. That str does the job nicely, therefore might not be worth to re-implement it in data.table. And if something is missing in str, then maybe could be improved there before duplicating functionality in data.table. If R core will find suggested changes not relevant, and we agree that they are nice to have, then it will be good reason to implement as a part of data.table.

@avimallu
Copy link
Contributor

@avimallu avimallu commented Dec 29, 2020

Got it. The enhancement I am proposing makes sense only to tabular data. Matrices, vectors and lists wouldn't really benefit from it, so I doubt R core will really care about these changes. We wouldn't really be duplicating the functionality, but rather polishing it for a very specific use case of tabular data.

@MichaelChirico
Copy link
Member Author

@MichaelChirico MichaelChirico commented Jan 1, 2021

str has a method for data.frames -- what about data.table makes the proposed update not apply to data.frames?

By the way, are you aware of the trunc.cols argument to print.data.table? e.g. print(data, trunc.cols=TRUE). The default can be controlled by an option; I think we are undecided about whether to change the default at some point.

@avimallu
Copy link
Contributor

@avimallu avimallu commented Jan 1, 2021

I wasn't referring to the proposed update not applying to data.frame, but to tabular data in general. For example (purely subjective), in str, it makes sense to expand the components of a list column into its constituents. In my use-case, I am required to sometimes take a very superficial look on multiple wide tables with long columns, such as the one mentioned in my example, which glimpse provides for (albeit with the extra dependencies that I need to install). Such a kind of modification would require adjustments specific for data.frames and derived data types (eg. max.levels = 1 instead of NA, or truncating column names if they are too long that the data moves to the next line), which is probably not in line with suggesting a change for R base.

I am aware of the trunc.cols argument to print, and it isn't quite what I'm looking for, and I'm not really a fan of making it the default - I understand the use case in #2608, however, in my case I actually need to glimpse the entire table because it'll contain multiple different columns of interest, as well as the data types that it holds.

I did go ahead an create a hack-y function for my own use, however, so this request can be considered addressed. This is the output it provides (colours to differentiate data types, not to identify them and truncating very long column names so that data can be seen on the same line), which I find particularly useful for very wide tables. I hope this clears up my use case - it is something that can be implemented without many additional dependencies (currently using crayon and stringi because I wanted to avoid the slight extra effort).

@fabeit
Copy link

@fabeit fabeit commented Apr 13, 2021

I completely agree that for tables with lots of columns with long names the print of dt is really cumbersome. None of the options are really useful, and I find the print from tibble a very nice compromise.

@avimallu wow that's a really nice way to visualize a data.table. Would you mind sharing the function?

Came here to say ask why datatable.prettyprint.char option is not listed in the help page of print.data.table?

@avimallu
Copy link
Contributor

@avimallu avimallu commented Apr 14, 2021

@fabeit, you can find it on my Github.

@avimallu
Copy link
Contributor

@avimallu avimallu commented Apr 22, 2021

Also, @MichaelChirico, 11th item in this is already done in #4074, right? One more (minor) update to the code that caters to that (if relevant):

require(data.table)
dt = setDT(lapply(1:100, function(x) 1:3))
dt
tibble::tbl_dt(dt)

@fabeit
Copy link

@fabeit fabeit commented Apr 23, 2021

@avimallu beautiful, thanks! Is there a way to print row and column count at the bottom as well as the top?

@MichaelChirico
Copy link
Member Author

@MichaelChirico MichaelChirico commented Apr 25, 2021

Thanks @avimallu indeed that point's done, I've marked it now

@avimallu
Copy link
Contributor

@avimallu avimallu commented Apr 27, 2021

@fabeit you can edit the source code (or contribute yourself) to get that to show. While I am flattered with your interest in the function, it may be best to limit discussion on it in this thread as it is off-topic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests