2015-07-07 22 views
0

Мне нужно свернуть мои данные по строке.R - Collapse By Row

seq = structure(c("h", "d", "s", "s", "f", "k", "s", "s", "f", "d", 
"d", "d", "l", "l", "d", "d"), .Dim = c(4L, 4L), .Dimnames = list(
NULL, c("act1.055", "act1.056", "act1.057", "act1.058"))) 

Мои данные выглядят следующим образом:

 act1.055 act1.056 act1.057 act1.058 
[1,] "h"  "f"  "f"  "l"  
[2,] "d"  "k"  "d"  "l"  
[3,] "s"  "s"  "d"  "d"  
[4,] "s"  "s"  "d"  "d" 

Если я

paste(seq, collapse = "") 
[1] "hdssfkssfdddlldd" 

, который не то, что я хочу.

Что мне нужно

hffl 
dkdl 
ssdd 
ssdd 

В матрице, если это возможно.

+0

Может быть, нам нужно 'функцию rowPaste'? –

+0

@BondedDust - Определенно! – giacomo

ответ

4
matrix(apply(seq, 1, paste, collapse=''), ncol=1) 
#  [,1] 
#[1,] "hffl" 
#[2,] "dkdl" 
#[3,] "ssdd" 
#[4,] "ssdd" 
+0

Большое спасибо очень полезно – giacomo

+1

Happy to help! Quicknote: избегать присвоения имен после функций. Может возникнуть путаница. –

+1

да правый! благодаря – giacomo

0

Другой вариант:

matrix(do.call(paste0, data.frame(seq))) 

Выход:

 [,1] 
[1,] "hffl" 
[2,] "dkdl" 
[3,] "ssdd" 
[4,] "ssdd"