使用tidyverse实现同结构tibble行列元素拼接(无硬编码列名)
解决方法
用tidyverse里的map2_dfc就能搞定,不用写循环也不用硬编码列名,适配任意列数的同结构tibble:
library(tidyverse) # 输入数据 x <- tibble(A = letters[1:4], B = letters[5:8]) y <- tibble(A = letters[9:12], B = letters[13:16]) # 合并拼接 result <- map2_dfc(x, y, ~str_c(.x, .y, sep = ","))
代码解释
map2_dfc会逐个配对x和y的列,对每一列的对应行执行字符串拼接,最后把所有处理后的列整合成新tibblestr_c用来把同一位置的两个字符串用逗号连起来,逻辑简单直接- 不管你的tibble是1列还是N列,只要x和y的行列数完全一致,这段代码就能正常运行
运行后得到的结果:
# A tibble: 4 × 2 A B <chr> <chr> 1 a,i e,m 2 b,j f,n 3 c,k g,o 4 d,l h,p
(注:你提供的示例结果中B列的拼接值存在笔误,上述为实际正确输出)
内容的提问来源于stack exchange,提问作者mchiapello
相关产品推荐
相关产品推荐

