Convert Named Character Vector to data.frame

前端 未结 5 920
后悔当初
后悔当初 2020-11-30 00:06

I have a named character vector returned from xmlAttrs like this:

testVect <- structure(c(\"11.2.0.3.0\", \"12.89\", \"12.71\"), .Names = c(\"db_version\"         


        
5条回答
  •  误落风尘
    2020-11-30 00:37

    The answers from @MatthewPlourde and @JackRyan work, but if you have a long named vector it is annoying to have a data frame with one row and many columns. If you'd rather have a "key" column and a "value" column with many rows, any of the following should work:

    data.frame(keyName=names(testVect), value=testVect, row.names=NULL)
    
    ##        keyName      value
    ## 1   db_version 11.2.0.3.0
    ## 2 elapsed_time      12.89
    ## 3     cpu_time      12.71
    
    
    ## Suggested by @JWilliman
    tibble::enframe(testVect)
    
    ## # A tibble: 3 x 2
    ##   name         value
    ##           
    ## 1 db_version   11.2.0.3.0
    ## 2 elapsed_time 12.89
    ## 3 cpu_time     12.71
    
    
    ## Suggested by @Joe
    stack(testVect)
    ##       values          ind
    ## 1 11.2.0.3.0   db_version
    ## 2      12.89 elapsed_time
    ## 3      12.71     cpu_time
    

提交回复
热议问题