开发者

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

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
     [,开发者_如何学C1]   [,2]
[1,] "Data" "2" 
[2,] "Data" "73"

What I want is to get strings like

     [,1]
[1,] "Data 2"
[2,] "Data 73"

Is there an easy way to join items by row?


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


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.


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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜