我如何为一个矩阵或数据框输出一个向量,其中每个元素都是由每行连接而成的字符串?

问题描述 投票:0回答:1

我有一个矩阵(或数据框)。

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。

r dataframe matrix dplyr row
1个回答
1
投票

我们可以将其转换为 data.frame 然后 pastedo.call

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,将矩阵按列分割成一个 listvector的,然后使用 do.call

do.call(paste, c(asplit(m1, 2), sep=''))
© www.soinside.com 2019 - 2024. All rights reserved.