В R: объединение элементов вектора по строкам, преобразование векторных строк в строки

Есть ли операция "по строке" в R, чтобы преобразовать каждую строку в вектор, подобный этому, в строки?

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

Я хочу получить строки типа

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

Есть ли простой способ присоединиться к элементам по строке?

Ответ 1

Да, есть. Он называется "применять"; -)

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

См. ?apply и ?paste

Ответ 2

После быстрого glace в ?paste, ясно, что apply не требуется для приведенного примера. Было бы удобно, если бы было несколько столбцов.

> paste(d[,1],d[,2])
[1] "Data 2"  "Data 73"

Ответ 3

Общий способ сделать это, не прибегая к ?apply:

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

Где as.data.frame используется, чтобы избежать индексов.

Edit:

do.call - это функция, которая принимает в качестве первого аргумента другую функцию, а список - как второй аргумент. Он часто используется для отправки списков аргументов в функции (в нашем случае столбцы от d до paste()). Мы отправляем d как data.frame(тип списка), чтобы этот трюк работал.