preserve old (pre 3.1.0) type.convert behavior

后端 未结 3 2075
天命终不由人
天命终不由人 2021-01-04 02:28

R 3.1.0 is out and one of the new features is the following:

type.convert() (and hence by default read.table()) returns a ch

3条回答
  •  鱼传尺愫
    2021-01-04 03:02

    Try using data.table's fread:

    # create test data set "a.dat"
    Lines <- "num1 num2\n1.1 1.1234567890123456\n2.2 2.2\n3.3 3.3\n"
    cat(Lines, file = "a.dat")
    
    #####
    
    library(data.table)
    
    DT <- fread("a.dat")
    str(DT)
    ## Classes ‘data.table’ and 'data.frame':  3 obs. of  2 variables:
    ## $ num1: num  1.1 2.2 3.3
    ## $ num2: num  1.12 2.2 3.3
    ## - attr(*, ".internal.selfref")= 
    
    class(DT)
    ## [1] "data.table" "data.frame"
    
    DF <- as.data.frame(DT) 
    class(DF)
    ## [1] "data.frame"
    

    ADDED LATER Since this answer was posted the latest patched version of R 3.1.0 has come out and by default reverts back to the old behavior with a new numerals argument to specify it differently. See type.convert and read.table

提交回复
热议问题