r-如何为矩阵或数据帧输出一个向量,其中每个元素都是从每行连接的字符串



我有一个矩阵(或数据帧(:

m1 <- matrix(letters[1:8], ncol = 2, byrow=TRUE)
[,1] [,2]
[1,] "a"  "b" 
[2,] "c"  "d" 
[3,] "e"  "f" 
[4,] "g"  "h" 

期望输出:

vec1 = c("ab", "cd", "ef", "gh")

我更希望这适用于任何列或行大小的矩阵。Base R和dplyr对此表示感谢。

我们可以转换为data.frame,然后使用do.call转换为paste

do.call(paste, c(as.data.frame(m1), sep=''))
#[1] "ab" "cd" "ef" "gh"

或者效率较低的选项是apply

apply(m1, 1, paste, collapse = '')

使用tidyverse,我们可以将reducestr_c一起使用

library(dplyr)
library(purrr)
library(stringr)
as_tibble(m1) %>% 
reduce(str_c, sep="")
#[1] "ab" "cd" "ef" "gh"

或者,如果只有两列,则按索引提取列,并使用paste0

paste0(m1[,1], m1[,2])

或者使用asplit,按列将矩阵拆分为vectors的list,然后使用do.call

do.call(paste, c(asplit(m1, 2), sep=''))

相关内容

  • 没有找到相关文章

最新更新