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

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

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 然后 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=''))

给TA打赏
共{{data.count}}人
人已打赏
未分类

用bool()建立一个列表的结果

2022-9-13 15:13:46

未分类

Label.SizeToFit() 已废弃。

2022-9-13 15:24:36

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索