Ответ 1
Да, есть. Он называется "применять"; -)
apply(d,1,paste,collapse=" ")
[1] "Data 2" "Data 73"
# convert to matrix using as.matrix to get exactly your solution
См. ?apply
и ?paste
Есть ли операция "по строке" в R, чтобы преобразовать каждую строку в вектор, подобный этому, в строки?
> d= cbind("Data", c("2", "73"))
> d
[,1] [,2]
[1,] "Data" "2"
[2,] "Data" "73"
Я хочу получить строки типа
[,1]
[1,] "Data 2"
[2,] "Data 73"
Есть ли простой способ присоединиться к элементам по строке?
Да, есть. Он называется "применять"; -)
apply(d,1,paste,collapse=" ")
[1] "Data 2" "Data 73"
# convert to matrix using as.matrix to get exactly your solution
См. ?apply
и ?paste
После быстрого glace в ?paste
, ясно, что apply
не требуется для приведенного примера. Было бы удобно, если бы было несколько столбцов.
> paste(d[,1],d[,2])
[1] "Data 2" "Data 73"
Общий способ сделать это, не прибегая к ?apply
:
do.call(paste, as.data.frame(d))
[1] "Data 2" "Data 73"
Где as.data.frame
используется, чтобы избежать индексов.
Edit:
do.call
- это функция, которая принимает в качестве первого аргумента другую функцию, а список - как второй аргумент. Он часто используется для отправки списков аргументов в функции (в нашем случае столбцы от d
до paste()
). Мы отправляем d как data.frame(тип списка), чтобы этот трюк работал.