How to expand Posixct field in R str()?

Viewed 450

I am trying to expand the amount of factors shown in one custom Posixct field where the normal way (str(DF, list.len=ncol(DF), vec.len=20)) does not work. I request here 20 but it shows all the time two ("2017-01-01 08:40:00" "2017-01-01 08:50:00" ...) regardless the length of the list (here 3). Data data.csv

"AAA", "BBB"
1, 01012017-0940+0100
2, 01012017-0950+0100
3, 01012017-0838+0100

Code

library('methods') # setClass

# https://unix.stackexchange.com/a/363290/16920
setClass('iso8601')

# https://stackoverflow.com/questions/5788117/only-read-limited-number-of-columns
setAs("character","iso8601",function(from) strptime(from,format="%d%m%Y-%H%M%z"))

DF <- read.csv(file='data.csv',
        sep=',',
        header=TRUE,
        colClasses=c('numeric','iso8601'),
        strip.white=TRUE)

DF

str(DF, list.len=ncol(DF), vec.len=20)

Output in R 3.3.3

 AAA                 BBB
1  1 2017-01-01 08:40:00
2  2 2017-01-01 08:50:00
3  3 2017-01-01 07:38:00
'data.frame':  3 obs. of  2 variables:
 $ AAA : num  1 2 3
 $ BBB : POSIXlt, format: "2017-01-01 08:40:00" "2017-01-01 08:50:00" ...

Output in R 3.4.0

Same as above, reproducing the same problem.

  AAA                 BBB
1   1 2017-01-01 08:40:00
2   2 2017-01-01 08:50:00
3   3 2017-01-01 07:38:00
'data.frame':   3 obs. of  2 variables:
 $ AAA: num  1 2 3
 $ BBB: POSIXlt, format: "2017-01-01 08:40:00" "2017-01-01 08:50:00" ...
  1. How can you expand str(DF, list.len=ncol(DF), vec.len=20) to many factors per variable?

  2. How can you show the amount of items per variable in str(DF)? Etc without the expansion of the parameters itself in the variable.

Eliminate terminal width and column factor in etiology

I did

  1. increased the defaults: width from 80 to 150, and columns from 24 to 38
  2. restarted the terminal prompt
  3. run Rscript myScript.r
  4. Output same again so the terminal width and column amount do not seem to play a factor here

Roland's proposal

The code does not work in all occasions, but in limited number of cases, so it should be possible apply it dynamically

# Roland's comment
str(DF, list.len=ncol(DF), vec.len=20, width = 100)

R: 3.3.3, 3.4.0 (2017-04-21, backports)
OS: Debian 8.7
Window manager: Gnome 3.14.1

1 Answers
Related