R convert large character string to dataframe

前端 未结 3 1485
执笔经年
执笔经年 2020-12-31 16:00

I am having trouble converting a large text string to a dataframe. I\'ve been unable to figure this simple task out yet. Hoping for your help.

x <- \"1 ap         


        
相关标签:
3条回答
  • 2020-12-31 16:41
      read.table(text=x,col.names=c('ID','Name'))
      #     ID      Name
        1    1     apple
        2  200 blueberry
        3 3000      pear
        4 4400 raspberry
    
    0 讨论(0)
  • 2020-12-31 16:55

    Try this:

    r <- unlist(strsplit(x, " "))
    data.frame(id=as.numeric(r[c(TRUE,FALSE)]), name=r[c(FALSE,TRUE)])
    
    #    id      name
    #1    1     apple
    #2  200 blueberry
    #3 3000      pear
    #4 4400 raspberry
    
    0 讨论(0)
  • 2020-12-31 16:56

    We can use gsub with read.table

    read.table(text=gsub("(?<=[a-z])\\s+", "\n", x, perl=TRUE), 
                header=FALSE, col.names = c("id", "name"))
    #    id      name
    #1    1     apple
    #2  200 blueberry
    #3 3000      pear
    #4 4400 raspberry
    

    Or with fread

    library(data.table)
    fread(gsub("(?<=[a-z])\\s+", "\n", x, perl=TRUE), col.names = c("id", "name"))
    

    Or this would also work without the gsub by specifying the col.names with read.table

    read.table(text=x,col.names=c('ID','Name'))
    #    ID      Name
    #1    1     apple
    #2  200 blueberry
    #3 3000      pear
    #4 4400 raspberry
    
    0 讨论(0)
提交回复
热议问题