In R: Joining vector elements by row, converting vector rows to strings

后端 未结 3 473
小蘑菇
小蘑菇 2021-01-04 05:03

Is there a \"by row\" operation in R to convert each row in a vector like this to strings?

> d= cbind(\"Data\", c(\"2\", \"73\"))
> d
     [,1]   [,2]
         


        
相关标签:
3条回答
  • 2021-01-04 05:18

    After a quick glace at ?paste, it's clear that apply isn't needed for the example given. It would be handy if there are several columns though.

    > paste(d[,1],d[,2])
    [1] "Data 2"  "Data 73"
    
    0 讨论(0)
  • 2021-01-04 05:27

    A general way to do it without resorting to ?apply:

    do.call(paste, as.data.frame(d))
    [1] "Data 2"  "Data 73"
    

    Where as.data.frame is used to avoid subscripts.

    Edit:

    do.call is a function which takes another function as first argument, and a list as second argument. It is often used to send lists of arguments to functions (in our case, the columns of d to paste()). We send d as a data.frame (a type of list) for this trick to work.

    0 讨论(0)
  • 2021-01-04 05:38

    Yes, there is. It is called "apply" ;-)

    apply(d,1,paste,collapse=" ")
    [1] "Data 2"  "Data 73"
    # convert to matrix using as.matrix to get exactly your solution
    

    See ?apply and ?paste

    0 讨论(0)
提交回复
热议问题